Python:拆分多维列表

时间:2013-03-10 18:16:57

标签: python list unicode split

我有一个

形式的列表
[(u'a1', u'b1'),
 (u'a1', u'b2'),
 (u'c1', u'c2')]

我希望将它们分成两个列表/列,如

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

unicode转换为字符串也会有所帮助!

另外,在另一个案例中,我有

形式的列表
[(('a', 'c'), -3), (('a', 'd'), -7), (('c', 'd'), -4)]

我需要

形式的输入
('a','a','c')
('c','d','d')
(-3,-7,-4)

任何提示?

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分: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)]

首先展平每个项目,然后转置列表。