具有列表列表,使得每个内部列表的长度为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解决这个问题,但似乎不可能...... 谁能帮助我?非常感谢。
答案 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')