簡體   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