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

时间:2019-10-18 01:19:15

标签: python dictionary

我正在使用如下递归代码:

    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()方法返回的列表会保留顺序吗?

2 个答案:

答案 0 :(得分:0)

不一定,这取决于您使用的Python版本。查看OrderedDict

从文档中

  

订购字典与常规字典一样,但有一些   与订购操作有关的额外功能。他们已经成为   现在不那么重要了,因为内置的dict类具有以下功能:   记住插入顺序(此新行为在   Python 3.7)。

答案 1 :(得分:0)

如果您依赖于Python字典或集合中键的顺序,则不必这样做。 Python使用哈希表实现这些类型,它们的顺序取决于插入和删除的历史记录以及随机哈希种子。

有关此事实的更多详细信息,可以在这里找到: hash function in Python 3.3 returns different results between sessions