Python使用字典的嵌套功能详解
作者:a411178010 发布时间:2021-03-19 01:20:02
当需要存储很多同类型的不通过数据时可能需要使用到嵌套,先用一个例子说明嵌套的使用
1、在列表中存储字典
#假设年级里有一群国际化的学生,有黄皮肤的中国人、有白皮肤的美国人也有黑皮肤的非洲人,只记录部分特征
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个同样年龄的中国学生,利用嵌套进行生成
#定义一个存储中国学生的列表,假设年龄都一样
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岁
#定义一个存储中国学生的列表,假设年龄都一样
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种粥,但是每种粥的配料都不一样,利用一个字典记录两种粥及其配料
#为了简化就不把配料全写出来了
gruel={
'八宝粥':['大米','桂圆','红枣','芡实','莲子','薏仁','黑豆','核桃仁'],
'瘦肉粥':['大米','瘦肉']
}
for key,value in gruel.items():
print('\n'+key,end=':')
for batching in value:
print(batching, end=' ')
输出:
八宝粥:大米 桂圆 红枣 芡实 莲子 薏仁 黑豆 核桃仁
瘦肉粥:大米 瘦肉
注意:
为了实现print()输出不换行,这里增加了end参数
配料作为列表存储在了字典里
3、在字典中嵌套字典
以班里有两个同学为示例
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
猜你喜欢
- 举例写文章详情页面的时候的一个场景:首先更改文章详情中的 PV,然后读取文章详情,然后根据文章详情中文章 Id 查阅该文章评论和该文章作者信
- 1.问题描述2.解决方案(1)Dataloader里面不用cv2.imread进行读取图片,用cv2.imread还会带来一系列的不方便,比
- 01 目标假设我们要实现一个blog系统,在该系统中有以下两个结构体:type Category struct {  
- 环境介绍python3.8numpymatplotlib第一步,绘制一个三维的爱心关于这一步,我采用的是大佬博客中的最后一种绘制方法。当然,
- 作者:Scott Gerber原标题:Mobile App Development: 10 Tips for Small Business
- 首先需要安装Win32-ODBC模块,具体的步骤如下:1:从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一
- 这篇文章主要介绍了Python JSON编解码方式原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 最近重温了一下位图分割的相关内容,发现网络上位图分割原理讲得已经很清楚了,但是代码多为C++实现或者Matlab实现,因为需要Python的
- //截取字符串长度。支持utf-8和gb2312编码。若为gb2312,先将其转为utf-8,在utf-8的基础上截取然后再转换回来 fun
- 错误号 错误信息5 &n
- 1、settings.INSTALLED_APPS下添加:django.contrib.staticfiles2、settings.py下添
- 本文实例为大家分享了js文字列表无缝滚动的具体代码,供大家参考,具体内容如下HTML代码:<div id="rule&quo
- pyfinance简介datasets.py :金融数据下载(基于request进行数据爬虫,有些数据由于外网受限已经无法下载);gener
- 前言: 最近在学习过程中总是遇到np.random.seed()这个问题,刚开始总是觉得不过是一个简单的随机数种子,就没太在意,后来遇到的次
- 问题描述:最近用jstree遇到一个问题,父节点选中时,被禁用的子节点也会选中如下解决方案:1、 将jstree升级到最新的版本,v3.3.
- 阅读上一篇:成为一个顶级设计师的第一准则限制你的色彩成为一个顶级设计师的7个简单原则的第二部分限制使用你的色彩。好象上个准则是让你限制用你的
- 在SQL SERVER 2005下还原数据库1、新建数据库A,右键还原数据库,此时目标数据库为A,选择备份文件B_db_2013110402
- 1. UDPUDP是一种无连接的、不可靠的传输协议,相比于TCP,UDP具有数据传输速度快、传输延迟小等优点,但是不保证数据的可靠传输,需要
- 一个简单的实现class NaiveFilter():'''Filter Messages from keyword
- 这本来是翻译Estelle Weyl的《15 JavaScript Gotchas》,里面介绍的都是在JavaScript编程实践中平时容易