【发布时间】:2015-04-22 14:13:01
【问题描述】:
所以我一直在尝试解决“Project Euler”问题,但遇到了其中一个问题。 我正在尝试遍历列表并检查给定数字是否可以被给定列表中的每个值均分。 我已经尝试了 all() 函数,认为它是最好的,但不是我得到一个值错误或什么都没有。 我用 all() 函数尝试了很多语法组合,但没有运气。
div_lst = [x for x in range(1, 21)]
num_list = [x for x in range(1, 1000000)]
for x in num_list:
if all(x % y for y in div_lst):
print(x)
我试过了
all((x % y == 0) for y in div_lst)
all((x % y for y in div_lst) == 0)
还有更多,只是似乎无法弄清楚。
【问题讨论】:
-
与您的问题无关,但您可以将前两行减少到
div_lst = range(1, 21)... 无需遍历range并创建一个列表。range按原样创建一个列表。 -
哇谢谢不知道,会节省我一些时间。
-
附带问题,假设我想要一个只有偶数的列表,我必须使用 [x for x in range(1, 1000) if x % 3 == 0] 吗?或者只是创建任何包含范围内某些条件的列表?
标签: python python-3.x