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 基础学习教程
Feb 08 Python
github配置使用指南
Nov 18 Python
使用Python脚本操作MongoDB的教程
Apr 16 Python
Python实现XML文件解析的示例代码
Feb 05 Python
Python中pandas模块DataFrame创建方法示例
Jun 20 Python
Python去除字符串前后空格的几种方法
Mar 04 Python
Python分支语句与循环语句应用实例分析
May 07 Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
Django DRF认证组件流程实现原理详解
Aug 17 Python
详解Python中下划线的5种含义
Jul 15 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绘制在图片上的正余弦曲线
2013/06/08 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
详谈js模块化规范
2017/07/07 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
django 微信网页授权登陆的实现
2019/07/30 Python
python常用排序算法的实现代码
2019/11/08 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
先进德育工作者事迹材料
2014/01/24 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
2015年团支书工作总结
2015/04/03 职场文书
学历证明范文
2015/06/16 职场文书
小学班主任工作随笔
2015/08/15 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书