繁体   English   中英

all()函数; 遍历if语句中的列表(python 3)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM