将列表列表一起加入Python中的一个列表[重复]

Posted

技术标签:

【中文标题】将列表列表一起加入Python中的一个列表[重复]【英文标题】:Join a list of lists together into one list in Python [duplicate] 【发布时间】: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]

【问题讨论】:

重复:***.com/questions/2158395/… 重复:***.com/questions/952914/… 【参考方案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

【讨论】:

以上是关于将列表列表一起加入Python中的一个列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python - 检查列表中的重复项并将重复项添加在一起以使用总和值更新列表

C# - 将所有列表列表连接在一起[重复]

python中删除列表中的重复内容

将项目附加到列表列表中的指定列表(Python)[重复]

如何将每个子列表加入 Python 中的单个字符串?

Python,MYSQL 如何将两个单独列表中的两列加在一起(数字总和)到一个新列表中? [关闭]