2014-09-22 83 views
0

有一個列表列表,使得每個內部列表的長度爲1或n(假定n> 1)。 例如,我有一個名爲在python中轉置嵌​​套列表

>>> 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')] 

我試圖通過使用拉鍊來解決這個問題,但似乎不可能。 任何人都可以幫我嗎?非常感謝。

回答

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')