PYTHON压平嵌套列表的简单实现

  • Post category:Python

在Python中,压平嵌套列表是一种常见的操作,可以将多层嵌套的列表转换为一维列表。本文将详细讲解如何实现Python压平嵌套列表的简单方法,并提供两个示例。

方法一:使用递归

使用递归是一种简单而有效的方法,可以将多层嵌套的列表转换为一维列表。可以使用以下代码来实现:

def flatten(lst):
    """
    将多层嵌套的列表压平为一维列表
    """
    result = []
    for item in lst:
        if isinstance(item, list):
            result.extend(flatten(item))
        else:
            result.append(item)
    return result

在上面的代码中,我们定义了一个名为flatten的函数,该函数接受一个列表作为参数,并返回一个压平的一维列表。在函数中,我们使用for循环遍历列表中的每个元素。如果元素是列表,则递归调用flatten函数,并将结果添加到结果列表中。否则,将元素添加到结果列表中。最后,返回结果列表。

以下是一个示例,演示如何使用flatten函数将多层嵌套的列表压平为一维列表:

lst = [1, 2, [3, 4, [5, 6], 7], 8, [9]]
result = flatten(lst)
print(result)
# 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]

在上面的示例中,我们定义了一个多层嵌套的列表,并使用flatten函数将其压平为一维列表。最后,打印结果列表。

方法二:使用列表推导式

使用列表推导式是一种简单而快速的方法,可以将多层嵌套的列表转换为一维列表。可以使用以下代码来实现:

def flatten(lst):
    """
    将多层嵌套的列表压平为一维列表
    """
    return [item for sublist in lst for item in (flatten(sublist) if isinstance(sublist, list) else [sublist])]

在上面的代码中,我们定义了一个名为flatten的函数,该函数接受一个列表作为参数,并返回一个压平的一维列表。在函数中,我们使用列表推导式遍历列表中的每个元素。如果元素是列表,则递归调用flatten函数,并将结果添加到结果列表中。否则,将元素添加到结果列表中。最后,返回结果列表。

以下是一个示例,演示如何使用flatten函数将多层嵌套的列表压平为一维列表:

lst = [1, 2, [3, 4, [5, 6], 7], 8, [9]]
result = flatten(lst)
print(result)
# 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]

在上面的示例中,我们定义了一个多层嵌套的列表,并使用flatten函数将其压平为一维列表。最后,打印结果列表。

总结

在本文中,我们介绍了两种简单的方法来实现Python压平嵌套列表。使用递归和列表推导式都可以将多层嵌套的列表转换为一维列表。通过本文的学习,您可以了解如何使用Python处理多层嵌套的列表,并将其转换为一维列表。