Re: [問題] 動態產生FOR迴圈的辦法
這個很像 乘法的分配律
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 9 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章