[英]Is order of elements in list returned by dict.items() same all the time?
我正在使用如下递归代码:
def dfs(self, hash_map):
ans = 1
for key,value in hash_map.items():
if value > 0:
hash_map[key] = hash_map[key] - 1
ans = ans + self.dfs(hash_map)
hash_map[key] = value
return ans
那么字典中items()方法返回的列表会保留顺序吗?
不一定,这取决于您使用的是什么版本的 Python。 查看OrderedDict
从文档:
有序词典就像普通词典一样,但具有一些与排序操作相关的额外功能。 现在它们变得不那么重要了,因为内置的字典 class 获得了记住插入顺序的能力(这种新行为在 Python 3.7 中得到保证)。
如果您依赖 Python 字典或集合中的键顺序,那么不要。 Python 使用 hash 表来实现这些类型,它们的顺序取决于插入和删除历史以及随机 hash 种子。
可以在此处找到有关该事实的更多详细信息: hash function in Python 3.3 在会话之间返回不同的结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.