Yon*_*nik 5 python list-comprehension list filter
我使用的是Python 3,我的问题是为什么输出不同?
print([x * x for x in range(2, 5, 2) if x % 4 == 0]) # returns [16]
q = [x * x for x in range(2, 5, 2)]
print(list(filter(lambda x: x % 4 == 0, q))) # returns [4, 16]
Run Code Online (Sandbox Code Playgroud)
在前者中,中的每一项都[2,4]
根据 进行检查x % 4 == 0
。在后者中,filter
将 lambda 应用于 中的每个项目q
,这不是 [2,4]
,而是[4,16]
。因此,x % 4 == 0
返回 true 两次。