出现报错:TypeError: unhashable type: ‘list‘

在Python中,这个错误通常是由于你试图将一个可变类型的对象,如列表(list)放入集合(set)或作为字典(dict)的键时产生的。集合和字典中的元素需要是可哈希的(hashable),也就是不能够被改变的。列表是可变类型,其内容可以被改变,所以它是不可哈希的。当你遇到类似这样的错误:

mylist = [1,2,3]
myset = {mylist}

会出现TypeError,并提示"unhashable type: 'list'"。解决方法是:1. 如果需要一个集合,改为将列表里的每个元素添加到集合中,而不是直接添加整个列表:

myset = {1,2,3}

2. 如果要作为字典的键,可以将列表转换为不可变的元组:

mydict = {(1,2,3):"value"}

3. 如果要保留列表形式,可以考虑用列表的副本或冻结来创建哈希值。所以要注意集合和字典键只能使用不可变和可哈希的类型,不要直接使用可变的列表类型。需要根据情况进行转换。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值