将列表列表一起加入Python中的一个列表中

dot*_*tty 3 python list

可能重复:
在Python中展平(不规则)列表

我有一个列表,其中包含许多列表.这是一个例子,

[
    [Obj, Obj, Obj, Obj],
    [Obj],
    [Obj],
    [
        [Obj,Obj],
        [Obj,Obj,Obj]
    ]
]
Run Code Online (Sandbox Code Playgroud)

有没有办法将所有这些项目合并为一个列表,因此输出将是类似的

[Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj]
Run Code Online (Sandbox Code Playgroud)

Ski*_*ick 7

是的,这是一种方法:

def flatten(lst):
    for elem in lst:
        if type(elem) in (tuple, list):
            for i in flatten(elem):
                yield i
        else:
            yield elem
Run Code Online (Sandbox Code Playgroud)

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

flattenedList = list(flatten(nestedList))
Run Code Online (Sandbox Code Playgroud)