Python实现嵌套列表去重方法示例

  • Post category:Python

Python实现嵌套列表去重方法示例

在Python中,我们可以使用set()函数和递归的方法来去重嵌套列表。本攻略将详细介绍如何去重嵌套列表。

使用set()函数去重嵌套列表

以下是一个示例代码,演示如何使用set()函数去重嵌套列表:

# 使用set()函数去重嵌套列表
nested_list = [[1, 2], [2, 3], [1, 2]]

flat_list = [item for sublist in nested_list for item in sublist]
unique_list = list(set(flat_list))

# 输出去重后的列表
print(unique_list)  # 输出[1, 2, 3]

在上面的示例代码中,我们首先将嵌套列表展开为一维列表,然后使用set()函数去重,最后将去重后的元素转换为列表。最后,我们输出去重后的列表。

使用递归去嵌套列表

以下是另一个示例代码,演示如何使用递归去重嵌套列表:

# 使用递归去重嵌套列表
nested_list = [[1, 2], [2, [3, [4, [5, 6]]]], [1, 2]]

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

unique_list = list(set(flatten(nested_list)))

# 输出去重后的列表
print(unique_list)  # 输出[1, 2, 3, 4, 5, 6]

在上面的示例代码中,我们使用递归的方法去重多层嵌套列表。我们定义了一个名为flatten()的函数,该函数接受一个嵌套列表作为参数,并返回展开后的一维列表。在函数中,我们使用循环遍历列表中的每个元素,如果当前元素是列表,则递归调用flatten()函数,否则将其添加到展开后的列表中。最后,我们使用set()函数去重展开后的列表,并将去重后的元素转换为列表。最后,我们输出去重后的列表。

总结

在Python中,我们可以使用set()函数和递归的方法来去重嵌套列表。使用set()函数可以快速去重,但需要将嵌套列表展开为一维列表。使用递归的方法可以避免展开列表的问题,但需要注意递归深度过大的问题。在使用去重嵌套列表时,需要注意列表中元素的类型,以便正确地去重列表。