==运算符实际上在Python词典上做什么?

==运算符实际上在Python词典上做什么?,第1张

==运算符实际上在Python词典上做什么?

Python递归检查字典的每个元素以确保相等。参见C

dict_equal()
实现
,该实现检查每个键和值(假设字典的长度相同);如果字典
b
具有相同的键,则
PyObject_RichCompareBool
测试值是否也匹配;这本质上是一个递归调用。

字典不可散列,因为其

__hash__
属性设置为
None
,并且大多数字典都是
可变的 ,当用作字典键时是不允许的。

如果要使用字典作为键,并通过现有引用更改键,则该键将不再插入哈希表中的相同位置。现在,使用另一个相等的字典(等于未更改的字典或已更改的字典)尝试检索值将不再起作用,因为将选择错误的插槽,或者键将不再相等。



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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存