2010-08-23 86 views
2

如何合併/組合兩個或三個元素的列表。例如,如果有兩個元素,列表 'L'聯合列表元素

l = [(a,b,c,d,e),(1,2,3,4,5)] 

被合併到

[(a,1),(b,2),(c,3),(d,4),(e,5)] 

然而如果有三個元件

l = [(a,b,c,d,e),(1,2,3,4,5),(I,II,II,IV,V)] 

列表被轉換成

[(a,1,I),(b,2,II),(c,3,III),(d,4,Iv),(e,5,V)] 

很多 提前致謝。

+0

你缺少從你的字符串引號,你有I,II,II,通過壓縮操作(* 1)實際上是相同的作爲轉置矩陣。 – 2010-08-23 21:40:38

+0

'列表(* zip(* zip(l)))== l'任何列表l ... – 2010-08-23 21:55:48

+0

@Tony,誰說他們是字符串? – habnabit 2010-08-23 22:20:22

回答

12

使用zip

l = [('a', 'b', 'c', 'd', 'e'), (1, 2, 3, 4, 5)] 
print zip(*l) 

結果:

 
[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)] 
+0

感謝您的幫助。順便說一句,我如何刪除內部括號: (a,(1,2)),所以我得到一個列表,如:(a,1,2)?再次感謝。 – DGT 2010-08-23 22:23:03

+0

@DGT您可以使用'itertools.chain'。 – 2010-08-24 09:52:02