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

问题描述 投票:0回答:2

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

    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 dictionary
2个回答
0
投票

不一定,这取决于您所使用的Python版本。签出OrderedDict

来自文档:

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.