Python 嵌套字典

在 Python 中,字典是项目的无序集合。例如

dictionary = {'key' : 'value',
'key_2': 'value_2'}

这里,dictionary 包含用花括号 {} 括起来的 key:value 对。

要了解更多关于字典的信息,请访问 Python 字典


Python 中的嵌套字典是什么?

在 Python 中,嵌套字典是字典中的字典。它是将多个字典收集到一个字典中。

nested_dict = { 'dictA': {'key_1': 'value_1'},
                'dictB': {'key_2': 'value_2'}}

这里,nested_dict 是一个嵌套字典,其中包含字典 dictAdictB。它们是两个各自具有键和值的字典。


创建嵌套字典

我们将创建一个字典中的人物字典。

示例 1:如何创建嵌套字典

people = {1: {'name': 'John', 'age': '27', 'sex': 'Male'},
          2: {'name': 'Marie', 'age': '22', 'sex': 'Female'}}

print(people)

当我们运行上面的程序时,它将输出

{1: {'name': 'John', 'age': '27', 'sex': 'Male'}, 2: {'name': 'Marie', 'age': '22', 'sex': 'Female'}}

在上面的程序中,people 是一个嵌套字典。内部字典 12 被分配给 people。这里,两个字典都有键 nameagesex,但值不同。现在,我们打印 people 的结果。


访问嵌套字典的元素

要访问嵌套字典的元素,我们使用 Python 中的索引 [] 语法。

示例 2:使用 [] 语法访问元素

people = {1: {'name': 'John', 'age': '27', 'sex': 'Male'},
          2: {'name': 'Marie', 'age': '22', 'sex': 'Female'}}

print(people[1]['name'])
print(people[1]['age'])
print(people[1]['sex'])

当我们运行上面的程序时,它将输出

John
27
Male

在上面的程序中,我们使用 people[1]['name'] 从内部字典 1 中打印键 name 的值。类似地,我们逐个打印 agesex 的值。


向嵌套字典添加元素

示例 3:如何更改或添加嵌套字典中的元素?

people = {1: {'name': 'John', 'age': '27', 'sex': 'Male'},
          2: {'name': 'Marie', 'age': '22', 'sex': 'Female'}}

people[3] = {}

people[3]['name'] = 'Luna'
people[3]['age'] = '24'
people[3]['sex'] = 'Female'
people[3]['married'] = 'No'

print(people[3])

当我们运行上面的程序时,它将输出

{'name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No'}

在上面的程序中,我们在字典 people 中创建了一个空字典 3

然后,我们逐个在字典 3 中添加 key:value 对,例如 people[3]['Name'] = 'Luna'。类似地,我们对键 agesexmarried 逐个执行此操作。当我们打印 people[3] 时,我们得到字典 3key:value 对。

示例 4:向嵌套字典添加另一个字典

people = {1: {'name': 'John', 'age': '27', 'sex': 'Male'},
          2: {'name': 'Marie', 'age': '22', 'sex': 'Female'},
          3: {'name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No'}}

people[4] = {'name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes'}
print(people[4])

当我们运行上面的程序时,它将输出

{'name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes'}

在上面的程序中,我们将一个字典字面量赋值给 people[4]。该字面量具有键 nameagesex 以及相应的值。然后我们打印 people[4],以查看字典 4 已添加到嵌套字典 people 中。


从嵌套字典中删除元素

在 Python 中,我们使用 “del” 语句从嵌套字典中删除元素。

示例 5:如何从嵌套字典中删除元素?

people = {1: {'name': 'John', 'age': '27', 'sex': 'Male'},
          2: {'name': 'Marie', 'age': '22', 'sex': 'Female'},
          3: {'name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No'},
          4: {'name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes'}}

del people[3]['married']
del people[4]['married']

print(people[3])
print(people[4])

当我们运行上面的程序时,它将输出

{'name': 'Luna', 'age': '24', 'sex': 'Female'}
{'name': 'Peter', 'age': '29', 'sex': 'Male'}

在上面的程序中,我们从内部字典 34 中删除了 marriedkey:value 对。然后,我们打印 people[3]people[4] 以确认更改。

示例 6:如何从嵌套字典中删除字典?

people = {1: {'name': 'John', 'age': '27', 'sex': 'Male'},
          2: {'name': 'Marie', 'age': '22', 'sex': 'Female'},
          3: {'name': 'Luna', 'age': '24', 'sex': 'Female'},
          4: {'name': 'Peter', 'age': '29', 'sex': 'Male'}}

del people[3], people[4]
print(people)

当我们运行上面的程序时,它将输出

{1: {'name': 'John', 'age': '27', 'sex': 'Male'}, 2: {'name': 'Marie', 'age': '22', 'sex': 'Female'}}

在上面的程序中,我们使用 del 从嵌套字典 people 中删除了内部字典 34。然后,我们打印嵌套字典 people 以确认更改。


遍历嵌套字典

使用 for 循环,我们可以遍历嵌套字典中的每个元素。

示例 7:如何遍历嵌套字典?

people = {1: {'Name': 'John', 'Age': '27', 'Sex': 'Male'},
          2: {'Name': 'Marie', 'Age': '22', 'Sex': 'Female'}}

for p_id, p_info in people.items():
    print("\nPerson ID:", p_id)
    
    for key in p_info:
        print(key + ':', p_info[key])

当我们运行上面的程序时,它将输出

Person ID: 1
Name: John
Age: 27
Sex: Male

Person ID: 2
Name: Marie
Age: 22
Sex: Female

在上面的程序中,第一个循环返回嵌套字典 people 中的所有键。它包含每个人的 ID p_id。我们使用这些 ID 来解包每个人的信息 p_info

第二个循环遍历每个人的信息。然后,它返回每个人字典中的所有键 nameagesex

现在,我们打印此键的值。


要记住的要点

  1. 嵌套字典是字典的无序集合
  2. 嵌套字典不能切片。
  3. 我们可以根据需要缩小或扩大嵌套字典。
  4. 像字典一样,它也有键和值。
  5. 字典通过键访问。
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战