【问题标题】:Join a list of lists together into one list in Python [duplicate]将列表列表一起加入Python中的一个列表[重复]
【发布时间】:2011-03-04 00:55:15
【问题描述】:

可能重复:
Flatten (an irregular) list of lists in Python

我有一个包含许多列表的列表。这是一个例子,

[
    [Obj, Obj, Obj, Obj],
    [Obj],
    [Obj],
    [
        [Obj,Obj],
        [Obj,Obj,Obj]
    ]
]

有没有办法将所有这些项目连接在一起作为一个列表,所以输出将类似于

[Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj]

【问题讨论】:

标签: python list


【解决方案1】:

是的,这里是one way to do it

def flatten(lst):
    for elem in lst:
        if type(elem) in (tuple, list):
            for i in flatten(elem):
                yield i
        else:
            yield elem

请注意,这会创建一个生成器,因此如果您需要一个列表,请将其包装在list()

flattenedList = list(flatten(nestedList))

【讨论】:

    【解决方案2】:

    从 MonkeySage 处盗取,here

    def iter_flatten(iterable):
      it = iter(iterable)
      for e in it:
        if isinstance(e, (list, tuple)):
          for f in iter_flatten(e):
            yield f
        else:
          yield e
    

    【讨论】:

      猜你喜欢
      • 2022-12-24
      • 2013-04-18
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 2013-02-22
      相关资源
      最近更新 更多