列表理解从一系列数字中查找所有素数?

时间:2018-06-04 18:12:39

标签: python list-comprehension

[x for x in range(1,100) if all(x%y for y in range(2,x))]

无法理解上面的代码如何返回正确的结果,而应该是

[x for x in range(1,100) if all(x%y!=0 for y in range(2,x))]

原因是,如果只有一个条件为True,则全部为True

1 个答案:

答案 0 :(得分:4)

在布尔上下文中,非零整数被认为是真实的,因此代码片段是等效的。

请注意,此算法会错误地将1归类为素数。