当需要存储很多同类型的不通过数据时可能需要使用到嵌套,先用一个例子说明嵌套的使用
1、在列表中存储字典
1
2
3
4
5
6
7
|
#假设年级里有一群国际化的学生,有黄皮肤的中国人、有白皮肤的美国人也有黑皮肤的非洲人,只记录部分特征
student_1 = { 'nationality' : 'China' , 'colour' : 'yellow' , 'age' : '15' }
student_2 = { 'nationality' : 'America' , 'colour' : 'white' , 'age' : '18' }
student_3 = { 'nationality' : 'Africa' , 'colour' : 'dark' , 'age' : '17' }
grade = [student_1,student_2,student_3]
for student in grade:
print (student)
|
输出:
{‘nationality': ‘China', ‘age': ‘15', ‘colour': ‘yellow'}
{‘nationality': ‘America', ‘age': ‘18', ‘colour': ‘white'}
{‘nationality': ‘Africa', ‘age': ‘17', ‘colour': ‘dark'}
注意,上边的实例中就将字典作为列表的元素进行了嵌套,然后利用列表进行遍历
下边假设年级里有30个同样年龄的中国学生,利用嵌套进行生成
1
2
3
4
5
6
7
8
9
10
11
|
#定义一个存储中国学生的列表,假设年龄都一样
chinese = []
#创建30个中国学生
for student in range ( 0 , 30 ):
student_1 = { 'nationality' : 'China' , 'colour' : 'yellow' , 'age' : '15' }
chinese.append(student_1)
#显示一共创建了多少个学生
print ( '一共创建了:' + str ( len (chinese)) + '个学生' )
#显示前5个中国学生
for stu in chinese[: 5 ]:
print (stu)
|
输出:
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'}
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'}
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'}
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'}
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'}
可是这么多学生的年龄都相同,显得不够自然,我们将前两个中国学生改成美国学生、年龄改成14岁
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#定义一个存储中国学生的列表,假设年龄都一样
chinese = []
#创建30个中国学生
for student in range ( 0 , 30 ):
student_1 = { 'nationality' : 'China' , 'colour' : 'yellow' , 'age' : '15' }
chinese.append(student_1)
#显示一共创建了多少个学生
print ( '一共创建了:' + str ( len (chinese)) + '个学生' )
for student_c in chinese[ 0 : 2 ]:
if student_c[ 'nationality' ] = = 'China' :
student_c[ 'nationality' ] = 'America'
student_c[ 'colour' ] = 'white'
student_c[ 'age' ] = 14
#显示前5个中国学生
for stu in chinese[: 5 ]:
print (stu)
|
输出:
一共创建了:30个学生
{‘colour': ‘white', ‘nationality': ‘America', ‘age': 14}
{‘colour': ‘white', ‘nationality': ‘America', ‘age': 14}
{‘colour': ‘yellow', ‘nationality': ‘China', ‘age': ‘15'}
{‘colour': ‘yellow', ‘nationality': ‘China', ‘age': ‘15'}
{‘colour': ‘yellow', ‘nationality': ‘China', ‘age': ‘15'}
备注:学到这里发现列表和字典的知识有点薄弱啊
2、在字典中存储列表
假设有个小店,里边卖了2种粥,但是每种粥的配料都不一样,利用一个字典记录两种粥及其配料
1
2
3
4
5
6
7
8
9
|
#为了简化就不把配料全写出来了
gruel = {
'八宝粥' :[ '大米' , '桂圆' , '红枣' , '芡实' , '莲子' , '薏仁' , '黑豆' , '核桃仁' ],
'瘦肉粥' :[ '大米' , '瘦肉' ]
}
for key,value in gruel.items():
print ( '\n' + key,end = ':' )
for batching in value:
print (batching, end = ' ' )
|
输出:
八宝粥:大米 桂圆 红枣 芡实 莲子 薏仁 黑豆 核桃仁
瘦肉粥:大米 瘦肉
注意:
为了实现print()输出不换行,这里增加了end参数
配料作为列表存储在了字典里
3、在字典中嵌套字典
以班里有两个同学为示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
grade = {
'赵丽颖' :{
'国籍' : '中国' ,
'民族' : '汉' ,
'出生日期' : '1987年10月16日' ,
'身高' : '165cm' ,
},
'杨幂' :{
'国籍' : '中国' ,
'民族' : '汉' ,
'出生日期' : '1986年9月12日' ,
'身高' : '166.5cm' ,
}
}
for name,info in grade.items():
print (name)
for key,value in info.items():
print (key + ':' + value)
|
输出:
杨幂
国籍:中国
民族:汉
出生日期:1986年9月12日
身高:166.5cm
赵丽颖
国籍:中国
民族:汉
出生日期:1987年10月16日
身高:165cm
这一节主要学习了字典的嵌套功能,主要学习了列表中嵌套字典、字典中嵌套列表、字典中嵌套字典的方式实现字典的复杂运用
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/a411178010/article/details/78550598