簡體   English   中英

Python:遍歷列表

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM