[問題] 動態產生FOR迴圈的辦法

看板Python作者 (marketcos)時間14年前 (2011/12/12 15:53), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/9 (看更多)
本身PYTHON初學者 這個問題 我想了兩天了 怎麼寫都很遜, 煩請高手來指點 事情是這樣的... 我想把數個lists的元素組合起來 例如: # listOne,listTwo,listThree分別是 ['a','b','c'] ['d','e','f'] ['g','h','i'] tmp = "" combination = [] for i in listOne: for j in listTwo: for k in listThree: tmp = i + j + k combination.append(tmp) print combination 執行結果會是 ['adg', 'adh', 'adi', 'aeg', 'aeh', 'aei', 'afg', 'afh', 'afi', 'bdg', 'bdh', 'bdi', 'beg', 'beh', 'bei', 'bfg', 'bfh', 'bfi', 'cdg', 'cdh', 'cdi', 'ceg', 'ceh', 'cei', 'cfg', 'cfh', 'cfi'] 我的問題是,如果今天我的lists不只三個 (可能會有100個) 除了for迴圈寫一百行, 還有什麼比較快的方法呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.5.131 ※ 編輯: marketcos 來自: 140.113.5.131 (12/12 15:57)

12/12 16:52, , 1F
如果有100個而且每個都是3個元素的話就有3^100個耶
12/12 16:52, 1F

12/12 19:10, , 2F
lists=[...]
12/12 19:10, 2F

12/12 19:11, , 3F
c=['']
12/12 19:11, 3F

12/12 19:12, , 4F
for l in lists:
12/12 19:12, 4F

12/12 19:13, , 5F
c=[i+j for i in c for j in l]
12/12 19:13, 5F

12/12 19:16, , 6F
print(c)
12/12 19:16, 6F
文章代碼(AID): #1EvRC3d3 (Python)
討論串 (同標題文章)
文章代碼(AID): #1EvRC3d3 (Python)