Python 字典:結構和哈希圖

掌握 Python 字典。學習儲存、取得和處理鍵值對資料。了解映射的效能和最佳實踐。

在編輯器中嘗試

概述

字典可以說是 Python 中最重要、最優化的資料結構。字典是儲存在“鍵:值”對中的可變資料值集合。如果你想像一本現實世界的字典,「鍵」就是你正在尋找的單詞,「值」就是定義。這種配對結構使得檢索、更新和管理關係資料變得異常有效率。

在底層,Python 字典被實作為高度最佳化的雜湊表(或雜湊映射)。這意味著透過鍵檢索值是一個“O(1)”常數時間操作。無論你的字典包含十個項目還是一千萬個項目,Python 都可以立即直接跳到該值的記憶體位址,而不需要掃描整個集合。

要定義字典,請使用花括號“{}”,鍵和值之間用冒號“:”分隔。鍵必須是不可變類型(如字串、整數或元組),這表示您不能使用列表作為字典鍵。然而,值絕對可以是任何東西,包括列表、對象,甚至是深層嵌套的字典,這使得它們非常適合表示類似 JSON 的資料結構。

存取值是使用括號表示法完成的(例如,`user["name"]`)。但是,如果金鑰不存在,此方法會拋出“KeyError”,立即停止程式執行。為了編寫更安全的程式碼,專業人員使用 `.get()` 方法(例如,`user.get("name")`),如果金鑰遺失,該方法會優雅地傳回 `None` 或自訂預設值,從而防止不必要的崩潰。

從歷史上看,Python 字典是完全無序的。但是,從Python 3.7 開始,官方保證字典保持插入順序。這意味著,當您使用“.keys()”、“.values()”或“.items()”等方法迭代字典時,項目將按照它們最初添加到字典中的確切順序返回,從而將哈希映射的速度與列表的可預測性相結合。

程式碼和執行輸出

大量利用嵌套鍵值對建立使用者設定檔。

user = {
    "username": "coder123",
    "role": "admin",
    "active": True
}

user["last_login"] = "2026-04-10" # Adding a key
print(f"Username is {user['username']}")

# Iterating over key-value pairs
for key, value in user.items():
    print(f"{key}: {value}")
端子輸出
Username is coder123
username: coder123
role: admin
active: True
last_login: 2026-04-10

逐步實施

  • 處理來自 REST API 的 JSON 回應
  • 將唯一 ID 對應到大數據對象
  • 儲存應用程式配置參數

常見問題解答

如果我嘗試存取不存在的密鑰會發生什麼?

使用括號表示法 (user["name"]) 會引發 KeyError。使用 user.get("name") 傳回 None 而不會拋出。

相關主題

推薦的 Python 資源

透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。