Possible Duplicate:
Python: Elegant and efficient ways to mask a list
我有两个同样大小的列表,比如:
a=["alpha","beta","kappa","gamma","lambda"]
b=[1,2,None,3,4,5]
我想做的是识别并删除列表[b]中的none元素,然后删除列表[a]中相应的元素。例如,在这里,我想删除none和“kappa”。
我知道:
过滤器(bool,b)
这将从[b]中删除None元素,但是,如何删除列表[a]中相应的条目呢?
我试了一下拉链,大概是这样的(想法是打包打包):
a=["a","b","c","d","e"]
b=[1,2,None,3,4]
c=zip(a,b)
d=filter(bool,c)
……但这不起作用。[d] 仍然有无元素。
我很感激任何Python式的方法来达到这个目的。
这可以通过^{} 和list comprehension巧妙地完成:
这个方法意味着您只生成一次选择器(而且
itertools.compress()
应该很快)。只需使用列表理解并将该条件添加到生成器表达式中:
相关问题 更多 >
编程相关推荐