📌  相关文章
📜  Python |将嵌套列表转换为平面列表(1)

📅  最后修改于: 2023-12-03 15:19:03.014000             🧑  作者: Mango

Python | 将嵌套列表转换为平面列表

当我们处理一些复杂的数据结构时,经常会用到嵌套列表。但是有时候,我们需要将嵌套列表转换为平面列表,以方便数据处理和分析。在本篇文章中,我们将介绍如何使用Python将嵌套列表转换为平面列表。

嵌套列表简介

嵌套列表是一种列表中包含其他列表的数据结构。其结构类似于树形结构,可以用递归的方式进行处理。下面是一个嵌套列表的例子:

nested_list = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
]

在上面的例子中,nested_list包含了3个列表,每个列表又包含了3个数字。

将嵌套列表转换为平面列表

有两种方式可以将嵌套列表转换为平面列表,分别是使用循环和使用递归。以下是两种方式的代码实现:

使用循环
def flatten(nested_list):
    flat_list = []
    for sublist in nested_list:
        for item in sublist:
            flat_list.append(item)
    return flat_list

上面的代码很简单,就是两个循环遍历所有的列表元素,并将它们添加到一个新的列表中。

使用递归
def flatten(nested_list):
    flat_list = []
    for item in nested_list:
        if type(item) == list:
            flat_list.extend(flatten(item))
        else:
            flat_list.append(item)
    return flat_list

上面的代码使用递归的方式遍历所有的元素,并将它们添加到一个新的列表中。如果这个元素是一个列表,那么就使用递归的方式遍历这个列表,并将它的元素添加到新的列表中。

总结

在本篇文章中,我们介绍了两种方式将嵌套列表转换为平面列表。其中,循环是比较简单的一种方法,而递归则可以处理更加复杂的嵌套结构。根据具体的需求,我们可以选择合适的方法进行处理。