在使用列表推导生成素数时使用`all()`函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用列表推导生成素数时使用`all()`函数相关的知识,希望对你有一定的参考价值。
我试图生成所有素数达到一定限度,并在另一个条目中找到我的问题的下面答案。有人可以在这里解释使用all()
功能。我知道它会在像True
和all([1,2,3])
这样的情况下生成False
。
all([1,2,False])
通过决定单个数字是否为素数来解释代码:
让我们看看5是否是素数
[x for x in range(2, 20) if all(x % y != 0 for y in range(2, x))]
所以calculation = [5%2!=0?, 5%3!=0?, 5%4!=0?]
Calculation = [True, True, True]
all(calculation) -> True (because all element of an iterable object(list) is true)
是素数
现在让我们看看4是否是素数:
5
所以calculation = [4%2!=0?, 4%3!=0?]
Calculation = [False, True]
all(calculation) -> False (because if any element in an iterable collection is false means all() will return false.)
不是素数注:上面不是有效的代码。只是解释。
4
首先让我们来评估一下[x for x in range(2, 20) if all(x % y != 0 for y in range(2, x))]
的内容:
all()
x % y != 0 for y in range(2, x)
获得剩余部分
x % y
不等于0
!= 0
为y,范围为2到x
因此,for y in range(2, x)
检查all()
的所有条件,如果是,则评估True
。这是正在检查Prime的原因,因为那些是主要条件,所有数字在将当前数字除以其他数字时没有剩余0,这意味着它可以被整除,因此不是素数。
只是将列表理解翻译成英文:
对于2和20之间的每个数字(即19),如果存在余数,则在2和第n个整数之间存在余数,其中n = x(即小于x),则保留列表中的数字。
具体例子:
True
以上是关于在使用列表推导生成素数时使用`all()`函数的主要内容,如果未能解决你的问题,请参考以下文章