当我们在使用Python的字典时,如果字典的key是可哈希的对象,那么可以使用该key对应的value。但如果key不可哈希(例如字典或列表等可变对象),就会报“TypeError: unhashable type: 'dict'”类型错误的异常。下面是解决这个错误的一些方法。
方法一:使用不可变对象作为字典的key
一个可哈希的对象必须是不可变的,因为 如果 key 不可变,那么它的 hash 值就不会改变,从而导致出现重复的 key。 如果 key 是可变的,那么在改变对象后它的 hash 值也会发生变化,这时该对象再作为 key 就不能被正确访问了。 因此,将字典中的key换成可 hash 的不可变类型(例如字符串、数字、元组,但不能是列表或字典)即可避免该错误。
dic = {("one", 1): "I'm the first one."}
print(dic[("one", 1)]) # 输出:I'm the first one.
方法二:将字典转化为普通列表,或使用其他数据结构
如果遇到字典中某些键为不可hash类型的情况,则可以把这些字典转化为可遍历的列表,或者使用其他的数据结构进行代替。
list_ = [{'a': 1}, {'b': 2}]
for item in list_:
print(item['a'])
以上两种方法可以保证Python中TypeError: unhashable type: 'dict'错误被解决。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中TypeError:unhashable type:’dict’错误的解决办法 - Python技术站