当需要存储很多同类型的不通过数据时可能需要使用到嵌套,先用一个例子说明嵌套的使用
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