python - 具有流程控制的嵌套列表理解

标签 python list-comprehension primes

我正在尝试将以下代码编写为一行代码。

for x in range(a, b+1):
   prime = True
   for y in range(2, int(x**0.5)):
     if x%y == 0:
       prime = False
       break
   if prime:
     return x

这是搜索 a 和 b 之间的素数。我将把每个质数保存到一个列表中。上面的代码检查范围内每个数字的素数。问题是我必须将这个嵌套循环编写为单行列表理解。我遇到的问题是列表理解不会经过第二个循环。它将检查 2,然后跳出循环。

我尝试过这种方法,但失败得很惨: ([x for x in range(10, 21) for y in range(2, int(x**0.5)) if x%y != 0])

最佳答案

我将构建一个模块化结果的内部列表,并检查是否有零:

[x for x in range(10, 21) if 0 not in (x%y for y in range(2, int(x**0.5)))]

关于python - 具有流程控制的嵌套列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46459098/

相关文章:

python - 类型错误 : '>' not supported between instances of 'float' and 'str'

Python strftime - 没有前导0的日期?

python 列表理解(如果,继续,中断)

arrays - 查找素数范围内出现次数最多的数字

c - 如何编写一个程序来打印数组中的素数,该数组的索引也是素数

python - XGBoost 回归器中的 "reg_alpha"参数。使用高值是不是不好?

Python Redis 交互

python - 测试值是否存在于多个列表中

python - 使用列表理解从另一个定义的数组创建一个没有重复的数组

java - 为什么输出在显示屏上不显示素数?