filter
在这里很好用。
>>> print filter(lambda x: x % 2 == 0, [1,2,3,4])
[2, 4]
您还可以使用列表理解。重要的是,map
的功能概念是将变换应用于可迭代类型的每个元素( 1比1 )。
过滤器完全符合您的要求,可以根据条件表达式保留或丢弃元素。请参阅用法here。
您的map(f,a)
来电回复:
[None, 2, None, 4]
以下是相应的lambda
函数,用于替换f
中的map()
并返回相同的结果:
>>> map(lambda x:None if x%2 else x, a)
[None, 2, None, 4]
如果您不希望None
成为列表的一部分,请使用filter()
代替map()
:
>>> filter(lambda x: not x%2, a)
[2, 4]