📅  最后修改于: 2023-12-03 14:46:15.069000             🧑  作者: Mango
在编程中,我们经常会遇到列表嵌套列表的情况,即一个列表中包含了其他的列表作为元素。这种情况下,如果我们需要将所有的元素都放到一个单独的列表中,我们就需要展平列表列表。
Python 提供了多种方法来展平列表列表。下面将介绍几种常用的方法,并提供相应的代码示例。
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
flatten_list = [element for sublist in nested_list for element in sublist]
上述代码使用了列表推导式,通过两个嵌套的 for
循环,将嵌套的列表展平为一个单独的列表 flatten_list
。
itertools.chain.from_iterable
import itertools
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
flatten_list = list(itertools.chain.from_iterable(nested_list))
这里使用了 itertools
模块中的 chain.from_iterable
函数,它能够将嵌套的可迭代对象展平为一个单独的迭代器。我们需要使用 list
函数将迭代器转换为列表。
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
def flatten(lst):
result = []
for i in lst:
if isinstance(i, list):
result.extend(flatten(i))
else:
result.append(i)
return result
flatten_list = flatten(nested_list)
这里我们定义了一个名为 flatten
的递归函数,用来将嵌套的列表展平。函数会遍历列表中的每个元素,如果元素是列表,则递归调用 flatten
函数,否则将元素添加到结果列表中。
flatten-list
from flatten_list import flatten
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
flatten_list = flatten(nested_list)
如果你不想自己实现展平功能,可以使用第三方库 flatten-list
,它提供了一个 flatten
函数,能够方便地将嵌套的列表展平。
以上就是展平列表列表的几种常用方法。根据具体的需求和喜好,选择适合自己的方法即可。