[英]all() function; iterate through list inside if statement (python 3)
因此,我一直在尝试解决“欧拉计划”问题,并陷入其中一个问题。 我正在尝试遍历列表,并检查给定数字是否可以均匀地除以给定列表中的每个值。 我尝试过all()函数,以为最好,但不是我要么出现值错误,要么什么都没有。 我已经用all()函数尝试了很多syntex组合,但是没有运气。
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)
还有很多,只是似乎无法弄清楚。
您的语法
all((x % y == 0) for y in div_lst)
做你想要的; 对于div_lst
每个y
,它检查x
是否可被y
整除。 您没有打印出任何内容的唯一原因是答案比10 ** 6大得多,因此您没有尝试正确的x
。
相比之下, all(x % y for y in div_lst)
等同于all((x % y != 0) for y in div_lst)
all(x % y for y in div_lst)
all((x % y != 0) for y in div_lst)
,这不是您想要的,并且因为所有整数都all((x % y != 0) for y in div_lst)
0 mod 1反正没有解决方案。
(提示:这不是解决此问题的正确方法。请阅读“最低公倍数”,以及如何计算它们。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.