>>> print filter(lambda x:x,[4,0,4,0,0,2])
[4, 4, 2]
问问题
365 次
2 回答
4
您的函数 ( lambda x:x
) 的结果被视为布尔值,并且bool(0)
是False
. 的工作filter()
是排除函数返回的所有元素False
。从文档中:
从函数返回 true 的那些可迭代元素构造一个列表。
于 2013-03-03T07:57:25.993 回答
0
@NPE 已经解释了您观察到的行为
顺便说一句,你的表情
>>> print filter(lambda x:x,[4,0,4,0,0,2])
可以等效地写为
>>> filter(None,[4,0,4,0,0,2])
于 2013-03-03T08:27:44.057 回答