在python中转置嵌​​套列表

时间:2014-09-22 06:13:52

标签: python list

具有列表列表,使得每个内部列表的长度为1或n(假设n> 1)。  例如,我有一个名为""

的列表
>>> test= [['AA', 'aa'], ['BB', 'bb'], ['CC'],['DD','dd']]

最后,我会像这样列出:

[('AA', 'BB', 'CC', 'DD'), 
 ('AA', 'BB', 'CC', 'dd'), 
 ('AA', 'bb', 'CC', 'DD'), 
 ('AA', 'bb', 'CC', 'dd'), 
 ('aa', 'BB', 'CC', 'DD'), 
 ('aa', 'BB', 'CC', 'dd'), 
 ('aa', 'bb', 'CC', 'DD'), 
 ('aa', 'bb', 'CC', 'dd')]

我尝试用zip解决这个问题,但似乎不可能...... 谁能帮助我?非常感谢。

1 个答案:

答案 0 :(得分:2)

尝试使用itertools.product

from itertools import product
a=[['AA', 'aa'], ['BB', 'bb'], ['CC'],['DD','dd']]

for i in product(*a):
    print i

#output
('AA', 'BB', 'CC', 'DD')
('AA', 'BB', 'CC', 'dd')
('AA', 'bb', 'CC', 'DD')
('AA', 'bb', 'CC', 'dd')
('aa', 'BB', 'CC', 'DD')
('aa', 'BB', 'CC', 'dd')
('aa', 'bb', 'CC', 'DD')
('aa', 'bb', 'CC', 'dd')