在 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
。
现在,我们打印此键的值。
要记住的要点
- 嵌套字典是字典的无序集合
- 嵌套字典不能切片。
- 我们可以根据需要缩小或扩大嵌套字典。
- 像字典一样,它也有键和值。
- 字典通过键访问。