Python 中的巢狀字典

Manav Narula 2023年10月10日
Python 中的巢狀字典

Python 中的巢狀字典是一個字典中的字典,其中外層字典的值也是字典。下面的程式碼顯示了一個基本的例子。

d1 = {
    0: {"Dept": "Mathematics", "Prof": "Dr Jack"},
    1: {"Dept": "Physics", "Prof": "Dr Mark"},
}
print(d1)

輸出:

{0: {'Dept': 'Mathematics', 'Prof': 'Dr Jack'}, 1: {'Dept': 'Physics', 'Prof': 'Dr Mark'}}

我們可以很容易地使用巢狀字典的鍵來訪問字典元素,如下例所示。

d1 = {
    0: {"Dept": "Mathematics", "Prof": "Dr Jack"},
    1: {"Dept": "Physics", "Prof": "Dr Mark"},
}
print(d1[0]["Dept"])

輸出:

Mathematics

這裡,0 是外層字典的鍵,'Dept' 是內層字典的鍵。

我們也可以像在 Python 普通字典中那樣新增元素。此外,我們也可以將整個字典作為一個元素新增。例如,我們可以將整個字典作為元素新增。

d1 = {
    0: {"Dept": "Mathematics", "Prof": "Dr Jack"},
    1: {"Dept": "Physics", "Prof": "Dr Mark"},
}
d1[2] = {"Dept": "CS", "Prof": "Dr Jay"}
print(d1[2])

輸出:

{'Dept': 'CS', 'Prof': 'Dr Jay'}

Python 在 collections 模組中有一個 defaultdict() 建構函式,用來建立字典,並在訪問一個不可用的鍵時返回一個預設值。

當你想按照你的要求返回預設值或初始化字典時,defaultdict() 資料型別非常有用。下面的程式碼展示瞭如何使用該方法建立一個簡單的字典。

from collections import defaultdict

d1 = defaultdict(lambda: defaultdict(dict))
d1["key_outer_1"] = {"key_inner_1": "val1"}
d1["key_outer_2"] = {"key_inner_2": "val2"}
print(dict(d1))

輸出:

{'key_outer_1': {'key_inner_1': 'val1'}, 'key_outer_2': {'key_inner_2': 'val2'}}
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python Dictionary