[問題] 動態追加參數

作者: e12518166339 (耐綸)   2017-09-25 21:50:42
標題下的有點爛,請見諒QQ
我有一個檔案格式長這樣
[gender]
Male
Female
[birthplace]
Taipei
Taoyuan
Taichung
Kaohsiung
[other]
music
movie
read
basketball
我想將他做排列組合,我是這樣寫的
parser = SafeConfigParser(allow_no_value=True)
parser.read('twiwan')
taiwan = []
g = globals()
total_section = parser.sections()
for sSection in total_section:
g['{0}'.format(sSection)] = []
for item in parser.items(sSection):
g[sSection].append(item[0])
for combination in itertools.product(gender, birthplace):
for i in xrange(1, len(other) + 1):
t = list(combinations(other, i))
for element in t:
twiwan.append(list(combination) + list(element))
這裡有兩個地方寫的不夠好,第一個是我動態產生list的方式
g['{0}'.format(sSection)] = []
即便不影響正確性,但是他會重複執行
第二個地方是
for combination in itertools.product(gender, birthplace)
因為目前只有gender跟birthplace
如果將來要新增一個新的section
[education]
phD
master
那我勢必要回頭改這個for迴圈改成
for combination in itertools.product(gender, birthplace,education)
請問我可以從那個方向來著手呢?
作者: withoutshine (何必幫別人想那麼多)   2017-09-25 22:06:00
想辦法生出 args=(gender, birthplayce, education)可以呼叫 itertools.product(*args)
作者: numpy (那麼拍)   2017-09-29 01:38:00
推樓上
作者: s860134 (s860134)   2017-09-29 08:46:00
unpacking 是 python 很方便的用法

Links booklink

Contact Us: admin [ a t ] ucptt.com