我不明白这个lambda



我在网上找一个可以用来求素数的lambda。我发现了这个:

nums = range(2, 100)
for i in range(2, 10):
nums = list(filter(lambda x: x == i or x % i, nums))
print(nums)

我理解x % i-i是一个从2到10的数字列表-可以过滤掉大于10的非素数;令我难以置信的是,如何将i列表添加到最终的nums中。

我相信这可能与x == i布尔值有关,但我不明白它是如何工作的。

Lambda-Functions可用于缩短代码。它们可以与"正常"进行比较。使用至少两行代码的函数。函数将与lambda-function相同:

def func(x):
return x == i or x % i

驱动代码:

nums = range(2, 100)
nums_a = []
for i in range(2, 10):
nums = list(filter(lambda x: x == i or x % i, nums))
nums_a = list(filter(func, nums))
print(nums_a)
print(nums)

这个lambda函数想要检查一个数字是否等于2到9之间的一个数字,并且不能被其中任何一个整除。

换句话说,整个程序要过滤质数这里的列表是从2到99在循环中。我们只需要检查2到9的除数,因为如果我们传递到10,我们可以找到10 * 10 = 100

相关内容

  • 没有找到相关文章

最新更新