TypeError: 无法哈希的类型:'list',移除列表中的重复项

-2 投票
2 回答
2618 浏览
提问于 2025-04-17 17:39

当我输入以下代码时,我只是想从一个列表中去掉重复的项目。这个列表里可能有一万对数据。

>>> t = [['a','1'],['a','1'],['a','2']...]
>>> t = list(set(t))

Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
t = list(set(t))
TypeError: unhashable type: 'list'
>>>

2 个回答

1

我知道这个问题有点老了,但在谷歌上搜索时它还是排在第一位。如果你的每个“子列表”只有两个元素,使用元组是可以的。但如果你想更普遍地去除重复的子列表,比如说你有一个这样的列表:

a=[[1,2],[1,2],[1,2],[1,4],[1,2,3],[1,2],[1,2]]

你可以使用

b=[a[x] for x in range(len(a)) if not(a[x] in a[:x])]

这样,b里就只会包含a中独一无二的元素了。

1

试着用元组来替代列表,比如 ('a','1')。据我所知,元组是可以被哈希的。

撰写回答