>>> a = {'foo': {'bar': 3}}
>>> b = {'foo': {'bar': 3}}
>>> a == b
True
据蟒蛇DOC,you can indeed use字典上的==
操作。
这里实际发生了什么? Python是否递归地检查字典的每个元素以确保相等?它是否确保这些键完全匹配,并且这些值也完全匹配?
是否有文档明确指出字典上的==
是什么意思?或者我是否必须实现自己的版本检查平等?
(如果==
运营商的工作,你为什么不哈希的类型的字典?也就是说,我为什么不能创建一组()类型的字典,或者使用字典作为字典键?)
字典不可散列,因为它们是可变的,它们的数据对过去的状态很敏感。很容易得到具有相等状态的两个字典,但由于字典的历史(包含更多虚拟条目)而产生的不等散列 –
@SlaterTyranus:您可以轻松地忽略虚拟条目;这不是问题。可变性是一个巨大的问题。 –