要了解lambdas,我正在学习本教程,并遇到了关于计算素数的例子(python 2.x):
nums = range(2,50)
for i in range(2,8):
nums = filter(lambda x: x == i or x % i, nums)
print (list(nums))
Run Code Online (Sandbox Code Playgroud)
版画
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
Run Code Online (Sandbox Code Playgroud)
但是,在python 3.4中尝试这个时,它产生了意想不到的行为:
nums = range(2,50)
for i in range(2,8):
nums = filter(lambda x: x == i or x % i , nums)
print(list(nums))
Run Code Online (Sandbox Code Playgroud)
版画
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, …Run Code Online (Sandbox Code Playgroud)