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

看板Python作者 (阿真)時間14年前 (2011/12/12 16:56), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/9 (看更多)
這個很像 乘法的分配律 a x b x c = (a x b) x c = d x c = result 先做a x b = d 再做d x c = result 所以n個也沒問題了 這樣的計算類似kron 但是是加法 所以得先自己寫一個函式用(與你的想法相同) def string_add( str_list1, str_list2 ): result = [] for i in str_list1: for j in str_list2: result.append( i + j ) return result 所以假設有100個list 只要將它們放入list群裡 list_s = [ list_one, list_two, ..., list_100 ] list_result = list_s[0] for list_i in list_s[1:]: list_result = string_add( list_result, list_i ) print list_result 結果應該一樣 速度上也差不多(的慢...) 只有程式碼的reuse與想法上有點差別 先求有 再求好吧~ 以上 有誤請指正 有更好的方法也請分享:) ※ 引述《marketcos (marketcos)》之銘言: : 本身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: 180.176.140.46

12/12 17:23, , 1F
非常謝謝!!!
12/12 17:23, 1F
文章代碼(AID): #1EvS7AUI (Python)
討論串 (同標題文章)
文章代碼(AID): #1EvS7AUI (Python)