有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。这里需要注意的是,前面的文章提到列表是不能作为字典中的键,但是可以作为字典中的值。
字典作为列表中的元素
# 输入
person1 = { 'Name1':'Youth','Age1':'17',}
person2 = { 'Name2':'Tom','Age2':'18',}
persons = [person1,person2]
for person in persons:
print(person)
# 输出
{'Name1': 'Youth', 'Age1': '17'}
{'Name2': 'Tom', 'Age2': '18'}
在上面的例子中,我们可以看到,字典是可以作为列表中的元素进行存储的。在程序中,每一个字典都是独立的,这就意味着我们可以对每一个字典进行操作。按照这个理解,我们其实可以挪用列表中的所用操作来实现我们需要的操作。这种场景的应用范围其实是广泛的,例如网站的用户信息存储,学籍信息的导入等。
字典中存储列表
# 输入
person = { 'Name1':'Youth','hobby':['Bike','Balls','Swim']}
print(person['Name1'].title() + "'hooby is: ")
for hobby in person['hobby']:
print("\t" + hobby)
# 输出
Youth'hooby is:
Bike
Balls
Swim
上述例子中,我们将键 [‘hobby’] 的值存储为一个列表 [‘Bike’,‘Balls’,‘Swim’]。当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。注意:列表和字典的嵌套层级不应太多。如果嵌套层级比前面的示例多得多,很可能有更简单的解决问题的方案。
字典中存储字典
# 输入
students = {
'Student1':{
'Name':'Jerry',
'hobby':'Bike',
},
'Student2':{
'Name':'Tom',
'hobby':'Balls',
},
}
for student_name,student_info in students.items():
print(student_name + " info is :")
print("\t" + "His name is :" + student_info['Name'])
print("\t" + "His hobby is :" + student_info['hobby'])
# 输出
Student1 info is :
His name is :Jerry
His hobby is :Bike
Student2 info is :
His name is :Tom
His hobby is :Balls
上述例子就是在字典中嵌套字典。但这样做时,代码可能很快复杂起来。例如,如果有多个网站用户,每个都有独特的用户名,可在字典中将用户名作为键,然后将每位用户的信息存储在一个字典中,并将该字典作为与用户名相关联的值。请注意,表示每位学生的字典的结构都相同,虽然Python 并没有这样的要求,但这使得嵌套的字典处理起来更容易。倘若表示每位用户的字典都包含不同的键,for 循环内部的代码将更复杂。
版权声明:本文为qq_42957717原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。