📜  python 展平列表列表 - Python (1)

📅  最后修改于: 2023-12-03 14:46:15.069000             🧑  作者: Mango

Python 展平列表列表

在编程中,我们经常会遇到列表嵌套列表的情况,即一个列表中包含了其他的列表作为元素。这种情况下,如果我们需要将所有的元素都放到一个单独的列表中,我们就需要展平列表列表。

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 函数,能够方便地将嵌套的列表展平。

以上就是展平列表列表的几种常用方法。根据具体的需求和喜好,选择适合自己的方法即可。