在 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 是一个嵌套字典,其中包含字典 dictA 和 dictB。它们是两个各自具有键和值的字典。
创建嵌套字典
我们将创建一个字典中的人物字典。
示例 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 是一个嵌套字典。内部字典 1 和 2 被分配给 people。这里,两个字典都有键 name、age、sex,但值不同。现在,我们打印 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 的值。类似地,我们逐个打印 age 和 sex 的值。
向嵌套字典添加元素
示例 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'。类似地,我们对键 age、sex 和 married 逐个执行此操作。当我们打印 people[3] 时,我们得到字典 3 的 key: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]。该字面量具有键 name、age 和 sex 以及相应的值。然后我们打印 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'}
在上面的程序中,我们从内部字典 3 和 4 中删除了 married 的 key: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 中删除了内部字典 3 和 4。然后,我们打印嵌套字典 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。
第二个循环遍历每个人的信息。然后,它返回每个人字典中的所有键 name、age、sex。
现在,我们打印此键的值。
要记住的要点
- 嵌套字典是字典的无序集合
- 嵌套字典不能切片。
- 我们可以根据需要缩小或扩大嵌套字典。
- 像字典一样,它也有键和值。
- 字典通过键访问。
