Python使用字典的嵌套功能详解


Posted in Python onFebruary 27, 2019

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

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

这一节主要学习了字典的嵌套功能,主要学习了列表中嵌套字典、字典中嵌套列表、字典中嵌套字典的方式实现字典的复杂运用

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python实现把json格式转换成文本或sql文件
Jul 10 Python
Python图像灰度变换及图像数组操作
Jan 27 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
python实现翻转棋游戏(othello)
Jul 29 Python
python实现屏保程序(适用于背单词)
Jul 30 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
如何使用Cython对python代码进行加密
Jul 08 Python
Python list列表中删除多个重复元素操作示例
Feb 27 #Python
WxPython建立批量录入框窗口
Feb 27 #Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 #Python
Python中类的创建和实例化操作示例
Feb 27 #Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 #Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
Feb 27 #Python
详解Django-restframework 之频率源码分析
Feb 27 #Python
You might like
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
javascript回到顶部特效
2016/07/30 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python Web服务器Tornado使用小结
2014/05/06 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
python与pycharm有何区别
2020/07/01 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
会计顶岗实习心得
2014/01/25 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
产品包装策划方案
2014/05/18 职场文书
爱的教育观后感
2015/06/17 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android