簡體   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