Python嵌套列表转一维的方法(压平嵌套列表)

  • Post category:Python

在Python中,嵌套列表是一种常见的数据结构。有时候,我们需要将嵌套列表转换为一维列表,以便更方便地进行处理。本文将介绍Python中嵌套列表转一维列表的方法,包括使用列表推导式、使用递归函数等方法。

使用列表推导式

使用列表推导式是将嵌套列表转换为一维列表的一种简单方法。列表推导式是一种快速创建列表的方法,可以使用for循环和if语句来生成列表。下面是一个示例,演示了如何使用列表推导式将嵌套列表转换为一维列表:

# 使用列表推导式将嵌套列表转换为一维列表
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list)    # [1, 2, 3, 4, 5, 6, 7, 8, 9]

在这个例子中,我们使用列表推导式将嵌套列表转换为一维列表,然后输出结果。输出结果为:

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

从输出结果可以看出,我们成功地使用列表推导式将嵌套列表转换为一维列表。

使用递归函数

使用递归函数是将嵌套列表转换为一维列表的另一种方法。递归函数是一种函数调用自身的方法,可以用于处理具有递归结构的数据。下面是一个示例,演示了如何使用递归函数将嵌套列表转换为一维列表:

# 使用递归函数将嵌套列表转换为一维列表
def flatten(nested_list):
    flat_list = []
    for item in nested_list:
        if isinstance(item, list):
            flat_list.extend(flatten(item))
        else:
            flat_list.append(item)
    return flat_list

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = flatten(nested_list)
print(flat_list)    # [1, 2, 3, 4, 5, 6, 7, 8, 9]

在这个例子中,我们使用递归函数将嵌套列表转换为一维列表,然后输出结果。输出结果为:

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

从输出结果可以看出,我们成功地使用递归函数将嵌套列表转换为一维列表。

示例说明

示例一:使用列表推导式将嵌套列表转换为一维列表

# 使用列表推导式将嵌套列表转换为一维列表
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list)    # [1, 2, 3, 4, 5, 6, 7, 8, 9]

在这个例子中,我们使用列表推导式将嵌套列表转换为一维列表。输出结果为:

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

从输出结果可以看出,我们成功地使用列表推导式将嵌套列表转换为一维列表。

示例二:使用递归函数将嵌套列表转换为一维列表

# 使用递归函数将嵌套列表转换为一维列表
def flatten(nested_list):
    flat_list = []
    for item in nested_list:
        if isinstance(item, list):
            flat_list.extend(flatten(item))
        else:
            flat_list.append(item)
    return flat_list

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = flatten(nested_list)
print(flat_list)    # [1, 2, 3, 4, 5, 6, 7, 8, 9]

在这个例子中,我们使用递归函数将嵌套列表转换为一维列表。输出结果为:

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

从输出结果可以看出,我们成功地使用递归函数将嵌套列表转换为一维列表。