美文网首页
Python数据使用set对数据去重报错TypeError: u

Python数据使用set对数据去重报错TypeError: u

作者: ButICare_b72d | 来源:发表于2023-12-27 23:13 被阅读0次

这个错误信息“TypeError: unhashable type: 'list'”表明你试图将一个列表(list)放入一个集合(set)中,但列表是可变的,所以它们不能被用作集合的键。

具体来说,集合中的元素必须是不可变的,这样才能保证集合的唯一性。而列表是可变的,这意味着如果你改变了一个列表,它仍然会被视为同一个对象。

例如:

python复制代码

my_list = [1,2,3]

my_set =set([my_list])

# 修改列表 

my_list[0] =100

# 打印集合中的元素 

print(my_set)# 输出:{[100, 2, 3]}

如上所示,尽管我们改变了my_list,但它在集合my_set中仍然被视为同一个对象。这是由于列表的id没有改变。

要解决这个问题,你需要确保放入集合中的元素是不可变的。例如,如果你想将列表中的值放入集合中,你可以这样做:

python复制代码

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

values1 =set(tuple(x) for x in values)# 将列表转换为元组后再放入集合中 

print(values1)# 输出:{(1, 2, 3), (2, 3, 4)}

这样,每个子列表都被转换成了不可变的元组,可以被正确地放入集合中。

相关文章

网友评论

      本文标题:Python数据使用set对数据去重报错TypeError: u

      本文链接:https://www.haomeiwen.com/subject/qrjdndtx.html