在Python中将多个列表合并为一个列表
我有一个列表,这个列表里面包含了很多其他的列表。比如说,下面是一个例子:
[
[Obj, Obj, Obj, Obj],
[Obj],
[Obj],
[
[Obj,Obj],
[Obj,Obj,Obj]
]
]
有没有办法把这些小列表里的所有东西合并成一个大列表,这样输出的结果就会像这样:
[Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj]
2 个回答
1
这段内容是从MonkeySage那里借来的,详细信息可以在这里找到:
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
7
是的,这里有一种方法可以做到:
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))