為什麼舊 Python 版本中的字典鍵並不總是有序的?

Susan Sarandon
發布: 2024-11-19 04:23:02
原創
268 人瀏覽過

Why Are Dictionary Keys in Older Python Versions Not Always Ordered?

舊版 Python 中字典中鍵的順序

在 3.6 之前的 Python 版本中,不保證字典中鍵的順序。在迭代字典或存取其鍵時,這可能會導致意外結果。

要理解此問題,請考慮以下程式碼:

d = {'a': 0, 'b': 1, 'c': 2}
l = d.keys()
print(l)
登入後複製

在此範例中,keys() 方法傳回字典中鍵的清單。但是,不保證列表中鍵的順序。在 Python 2.7 及更早版本中,鍵按插入順序傳回。但是,從 Python 3.0 開始,鍵以任意順序傳回。

如果您依賴字典中鍵的順序,這種不一致可能會出現問題。例如,如果您使用字典來儲存購物清單中的項目,則您可能想要按照將它們新增至字典中的順序傳回鍵。然而,在Python 3.0版本開始,這是不保證的。

要解決這個問題,有兩種選擇。第一個是使用collections.OrderedDict類別。這個類別提供了對插入順序的保證。程式碼展示如何使用OrderedDict:

from collections import OrderedDict

d = OrderedDict([('a', 0), ('b', 1), ('c', 2)])
l = list(d.keys())
print(l)  # ['a', 'b', 'c']
登入後複製

另一個選擇是使用sorted()函數對key進行升序排序。但是,這需要額外的步驟,並且可能不會總是所需的行為。

對於 Python 3.6 及更高版本,字典預設保持插入順序。但是,如果您需要跨不同 Python 實作保證插入順序,仍然建議使用 OrderedDict。

以上是為什麼舊 Python 版本中的字典鍵並不總是有序的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板