在这个问题中,有人建议在字典上调用repr是将它存储在另一个字典中的好方法.无论按键的排序方式如何,这都取决于repr是否相同.是这样的吗?
PS.对原始问题最优雅的解决方案实际上是使用freezeset
不,键添加到字典的顺序可能会影响内部数据结构.当两个项目具有相同的哈希值并最终在同一个存储桶中时,它们添加到字典中的顺序很重要.
>>> (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'}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1284 次 |
| 最近记录: |