繁体   English   中英

dict.items() 返回的列表中元素的顺序是否始终相同?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM