我正在尝试将以下代码编写为一行代码。
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/