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