【问题标题】:Python list comprehension to join list of lists [duplicate]Python列表理解加入列表列表[重复]
【发布时间】:2013-01-26 07:00:22
【问题描述】:

给定lists = [['hello'], ['world', 'foo', 'bar']]

如何将其转换为单个字符串列表?

combinedLists = ['hello', 'world', 'foo', 'bar']

【问题讨论】:

  • 我知道我可以通过使用嵌套循环来完成很长的路要走,但我想知道是否有单线来做同样的事情。
  • 另一种简单快捷的方法是:>> lists = [['hello'], ['world', 'foo', 'bar']] ########## ######### >>combinedLists = 列表[0] + 列表[1]

标签: python list-comprehension


【解决方案1】:
from itertools import chain

combined = [['hello'], ['world', 'foo', 'bar']]
single = [i for i in chain.from_iterable(combined)]

【讨论】:

    【解决方案2】:
    lists = [['hello'], ['world', 'foo', 'bar']]
    combined = [item for sublist in lists for item in sublist]
    

    或者:

    import itertools
    
    lists = [['hello'], ['world', 'foo', 'bar']]
    combined = list(itertools.chain.from_iterable(lists))
    

    【讨论】:

    • 虽然我认为第一个选择看起来更好。使用 itertools 快得多。这个答案很棒。
    • 第一个看起来不错。但是我很难理解变量的去向。
    • 我在 DF 中使用老式的惰性循环超过 90,000 个条目。它需要永远。我切换到这个,它是即时的!我知道它神奇地更快,但那太愚蠢了。
    • @Aidis 为您或其他任何也感到困惑的人:最好记住的方法是,从 for 开始,表达式的顺序与正常的嵌套 for 循环相同。
    猜你喜欢
    • 2011-06-15
    • 2019-08-13
    • 2017-11-28
    • 2015-10-16
    • 1970-01-01
    • 2013-09-05
    • 2018-03-20
    • 2017-02-27
    • 2018-08-31
    相关资源
    最近更新 更多