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

2024-06-28 11:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我一直在试图解决“欧拉计划”的问题,却被其中一个问题困住了。 我尝试遍历一个列表,检查给定的数字是否可以被给定列表中的每个值平均除。 我试过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) 

还有更多的,就是好像想不通。你知道吗


Tags: 函数indiv列表forif错误range
1条回答
网友
1楼 · 发布于 2024-06-28 11:21:00

你的语法

all((x % y == 0) for y in div_lst) 

它检查x是否可以被y整除。你没有打印出来的唯一原因是因为答案比10**6大得多,所以你没有尝试正确的x。你知道吗

相比之下,all(x % y for y in div_lst)等价于all((x % y != 0) for y in div_lst),这不是您想要的,而且由于所有整数都与0一致,所以mod 1无论如何都没有解。你知道吗

(提示:这不是解决这个问题的正确方法。阅读“最低公倍数”,以及如何计算它们。)

相关问题 更多 >