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