[英]Python: iterate through a list
我想要使用python解決一個心靈挑戰之謎。 他們給出4個數字(25,28,38,35),他們希望我們將數字放在...... + ... - ... = ......一個可能的解決方案是25 + 38-35 = 28。 我試過,從數字中創建一個列表,用一些循環和if:lst = [25,28,38,35]迭代它們
for z in lst:
for x in lst:
for c in lst:
for v in lst:
if z+x-c==v:
print z,x,c,v
但是當運行for循環時,他們會重復這些數字,(25 + 25-25 = 25)並且不起作用。 我怎么解決呢?
正如路易斯的評論所暗示的那樣,一個好的方法是
import itertools
for z, x, c, v in itertools.permutations(lst):
if z+x-c==v:
print z,x,c,v
“flat比嵌套更好”,因為在交互式Python提示符下import this
會提醒你:-)
Def recadd(lis):
If lis[0] + lis[1] - lis[2]] = lis[3]:
return lis
Else:
recadd(lis[3] + lis[0:2])
recadd(lis[0] + lis[3] + lis[1:2])
recadd(lis[0:1] + lis[3]. + lis[2])
在我的手機上快速而骯臟的黑客,可以優雅地擴展為k號碼,未經測試,但它應該工作。
編輯:意識到如果沒有解決方案,這將無法工作。無限遞歸...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.