作者marketcos (marketcos)
看板Python
标题[问题] 取代多行FOR回圈的办法
时间Mon Dec 12 15:53:36 2011
本身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)
1F:→ darkgerm:如果有100个而且每个都是3个元素的话就有3^100个耶 12/12 16:52
2F:推 mikapauli:lists=[...] 12/12 19:10
3F:→ mikapauli:c=[''] 12/12 19:11
4F:→ mikapauli:for l in lists: 12/12 19:12
5F:→ mikapauli: c=[i+j for i in c for j in l] 12/12 19:13
6F:推 mikapauli:print(c) 12/12 19:16