是什么使列表无法散列?

是什么使列表无法散列?,第1张

是什么使列表无法散列?

字典和集合使用哈希算法来唯一确定一个项目。这些算法利用用作键的项目得出唯一的哈希值。由于列表是可变的,因此列表的内容可以更改。在允许列表作为关键字存在于字典中之后,如果列表的内容发生变化,则哈希值也将发生变化。如果哈希值存储在字典中的特定插槽后发生了变化,则将导致字典不一致。例如,最初,该列表已存储在位置A,该位置是基于哈希值确定的。如果哈希值发生变化,并且如果我们查找列表,则可能无法在location处找到它

A
,或者根据新的哈希值,可能会找到其他对象。

由于不可能提供哈希值,因此在内部没有为list定义哈希函数。

PyObject_HashNotImplemented,     

由于未实现哈希函数,因此当您将其用作字典中的键或强制尝试使用该

hash
函数获取哈希值时,它将无法对其进行哈希处理,因此对于不可哈希的类型将无法进行哈希处理

TypeError: unhashable type: 'list'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存