欢迎访问宙启技术站
智能推送

如何使用flatten()函数将嵌套列表转换为一维列表

发布时间:2024-01-09 10:01:24

flatten()函数可以用于将嵌套列表转换为一维列表。一维列表是指列表中的所有元素都位于同一层级,而不再包含嵌套的子列表。

以下是使用Python中的flatten()函数将嵌套列表转换为一维列表的示例代码:

def flatten(nested_list):
    if not isinstance(nested_list, list):  # 如果不是列表,直接返回该元素
        return [nested_list]
    else:
        result = []  # 结果列表
        for item in nested_list:
            result.extend(flatten(item))  # 递归调用flatten函数处理每个子元素
        return result

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

运行上述代码,输出结果为:

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

在上述代码中,flatten()函数接收一个嵌套列表作为输入,并返回转换后的一维列表。首先,函数检查输入是否是列表类型,如果不是,则直接返回带有该元素的列表。如果是列表类型,则创建一个空列表result来保存结果。

然后,函数使用for循环遍历每个元素。如果元素是一个嵌套的子列表,则递归调用flatten()函数来处理子列表。递归调用的目的是将子列表转换为一维列表。通过递归调用,在嵌套列表中的所有水平都会被逐个处理。

在每次递归调用flatten()函数时,子列表中的元素被提取出来,并用extend()函数添加到result列表中。extend()函数用于将多个元素添加到列表的末尾。通过这样的方式,子列表中的元素被逐个展开,并添加到最终的结果列表中。

最后,函数返回结果列表,其中包含了所有不再包含嵌套的一维列表。

在上述示例代码中,nested_list是一个嵌套列表,包含了多个层级的子列表。通过调用flatten()函数,嵌套列表被转换为一维列表flattened_list。输出结果表明,转换成功,所有元素都位于同一级别上,不再有嵌套的子列表。