在此问题中,建议在字典上调用repr是将其存储在另一个字典中的好方法。无论密钥如何排序,这都将取决于repr是否相同。是这样吗
PS。解决原始问题的最佳方法是使用Frozenset
不,键添加到字典的顺序可能会影响内部数据结构。当两个项目具有相同的哈希值并以相同的桶结尾时,则将它们添加到字典的顺序很重要。
>>> (1).__hash__() 1 >>> (1 << 32).__hash__() 1 >>> repr({1: 'one', 1 << 32: 'not one'}) "{1: 'one', 4294967296L: 'not one'}" >>> repr({1 << 32: 'not one', 1: 'one'}) "{4294967296L: 'not one', 1: 'one'}"