2013-03-10 64 views
1

我在的Python:拆分多維名單

[(u'a1', u'b1'), 
(u'a1', u'b2'), 
(u'c1', u'c2')] 

形式的列表,我希望它一分爲二成兩個列表/列像

轉換的Unicode
list1   list2  
[(u'a1',  [(u'b1'), 
(u'a1',  (u'b2'), 
(u'c1')]  (u'c2')] 

會也幫忙!

此外,在另一種情況下,我有名單的

[(('a', 'c'), -3), (('a', 'd'), -7), (('c', 'd'), -4)] 

形式,我需要輸入在

('a','a','c') 
('c','d','d') 
(-3,-7,-4) 

任何提示的形式?

+0

你的格式化讓事情變得混亂,你的括號不會關閉,也不會形成元組。 – 2013-03-10 18:19:57

回答

3

第二個例子:

>>> L = [(('a', 'c'), -3), (('a', 'd'), -7), (('c', 'd'), -4)] 
>>> zip(*[(a[0], a[1], b) for a, b in L]) 
[('a', 'a', 'c'), ('c', 'd', 'd'), (-3, -7, -4)] 

它首先將每項,然後調換列表。

+0

完美!謝謝! – Zero 2013-03-10 18:29:29

5

你可以使用列表理解創建兩個新的列表:

x=[(u'a1', u'b1'), 
(u'a1', u'b2'), 
(u'c1', u'c2')] 

list1 = [i[0] for i in x] 

list2 = [i[1] for i in x] 
+0

邦上! ('','c'),-3),((''','d'),-7),(('c','d'),-4)] ('''','a','c') ('c','d','d') (-3,-7,-4)'case? – Zero 2013-03-10 18:25:25

+0

@ J.F。塞巴斯蒂安剛剛爲此添加了一個不錯的答案。 – 2013-03-10 18:26:44