lambda功能,什么都不返回

时间:2016-11-17 23:05:55

标签: python lambda

我想在python中编写一个lambda函数并将其与map一起使用来创建一个包含当前列表成员的列表 例如,我可以在没有lambda的情况下做到这一点:

a = [1,2,3,4]
def f(x):
  if x % 2 == 0:
    return x
  else:
    return
print map(f,a)

2 个答案:

答案 0 :(得分:2)

filter在这里很好用。

>>> print filter(lambda x: x % 2 == 0, [1,2,3,4])
[2, 4]

您还可以使用列表理解。重要的是,map的功能概念是将变换应用于可迭代类型的每个元素( 1比1 )。

过滤器完全符合您的要求,可以根据条件表达式保留或丢弃元素。请参阅用法here

答案 1 :(得分:0)

您的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]