📌  相关文章
📜  TypeError: unhashable type: 'list' drop duplicates - Python (1)

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

TypeError: unhashable type: 'list' 意义

当我们尝试使用Python中的drop_duplicates()函数删除列表中的重复元素时,由于传入的列表中包含不可哈希类型的元素,因此会抛出此TypeError异常。通常,这种异常会在对于类似于列表、字典等不可哈希对象进行操作时经常出现。

解决方法
  1. 将列表转换为元组

一个解决方法是将列表转换为元组,因为元组是可哈希的:

list_with_duplicates = [[1, 2], [3, 4], [1, 2]]
list_without_duplicates = list(set(tuple(x) for x in list_with_duplicates))

2.用自定义函数

另一种解决方法是使用自定义函数。这个函数可以将一个列表作为参数,并将其转换为不包含重复项的新列表:

def remove_duplicates(lst):
    new_list = []
    for i in lst:
        if i not in new_list:
            new_list.append(i)
    return new_list

list_with_duplicates = [[1, 2], [3, 4], [1, 2]]
list_without_duplicates = remove_duplicates(list_with_duplicates)

以上是两种常见的解决方法,但是否适用于您的具体情况需要您进一步考虑和测试。