这个错误通常是因为你试图将一个不可哈希的对象(如列表、字典等)作为字典的键或集合的元素。因为字典和集合是基于哈希表实现的,哈希表要求键或元素必须是可哈希的对象。
如果你想把一个列表作为字典的键或集合的元素,可以将其转换为元组,因为元组是不可变的,可以作为字典的键或集合的元素。例如:
lst = [[1, 2], [3, 4], [1, 2]]
d = {}
for item in lst:
d[tuple(item)] = 1
print(d)
在上面的代码中,我们将列表 lst 中的每个元素都转换为元组,然后将其作为字典的键。运行结果为:
{(1, 2): 1, (3, 4): 1}
同样的,如果你想把一个列表作为集合的元素,也可以将其转换为元组,例如:
lst = [[1, 2], [3, 4], [1, 2]]
s = set()
for item in lst:
s.add(tuple(item))
print(s)
在上面的代码中,我们将列表 lst 中的每个元素都转换为元组,然后将其添加到集合中。运行结果为:
{(1, 2), (3, 4)}