【问题标题】:Python : Splitting multidimensional listsPython:拆分多维列表
【发布时间】:2013-02-25 20:57:30
【问题描述】:

我有一个格式为

的列表
[(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 到 string 的转换也会有所帮助!

另外,在另一种情况下,我的列表格式为

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

我需要

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

有什么建议吗?

【问题讨论】:

  • 您的格式使事情变得混乱,并且您的括号没有关闭,也没有在它们所在的位置形成元组。

标签: python list unicode split


【解决方案1】:

第二个例子:

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

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

【讨论】:

    【解决方案2】:

    您可以使用列表推导创建两个新列表:

    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]
    

    【讨论】:

    • 加油!有什么 [(('a', 'c'), -3), (('a', 'd'), -7), (('c', 'd'), -4)]('a','a','c') ('c','d','d') (-3,-7,-4) 案例?
    猜你喜欢
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多