python – 使用list comprehention查找素数

我试图生成范围x到y的所有素数.我首先尝试了简单的例子:range(10,11),这意味着检查10是否是素数:
这是我的代码:

prime_list = [x for x in range(10, 11) for y in range(2,x) if x % x == 0 and x % 1 == 0 and x % y != 0]

我知道事情是缺少告诉表达式的选项x%y!= 0应检查范围(2,x)中的所有y,并且当且仅当所有符合此条件时才返回true.

我们怎么做?

最佳答案
使用all检查所有元素(从2到x-1)满足条件:

>>> [x for x in range(2, 20)
     if all(x % y != 0 for y in range(2, x))]
[2, 3, 5, 7, 11, 13, 17, 19]

转载注明原文:python – 使用list comprehention查找素数 - 代码日志