Python递归检查字典的每个元素以确保相等。参见Cdict_equal()
实现,该实现检查每个键和值(假设字典的长度相同);如果字典b
具有相同的键,则PyObject_RichCompareBool
测试值是否也匹配;这本质上是一个递归调用。
字典不可散列,因为其__hash__
属性设置为None
,并且大多数字典都是可变的 ,当用作字典键时是不允许的。
如果要使用字典作为键,并通过现有引用更改键,则该键将不再插入哈希表中的相同位置。现在,使用另一个相等的字典(等于未更改的字典或已更改的字典)尝试检索值将不再起作用,因为将选择错误的插槽,或者键将不再相等。