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 正则式使用心得
May 07 Python
Python写的一个简单监控系统
Jun 19 Python
Python的标准模块包json详解
Mar 13 Python
python3 发送任意文件邮件的实例
Jan 23 Python
pycharm设置注释颜色的方法
May 23 Python
python学习之hook钩子的原理和使用
Oct 25 Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 Python
python字典排序的方法
Oct 12 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
Python txt文件如何转换成字典
Nov 03 Python
python实战之用emoji表情生成文字
May 08 Python
Python多个MP4合成视频的实现方法
Jul 16 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制作文本式留言板
2015/03/18 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
深入浅析JS中的严格模式
2018/06/04 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Python和Go语言的区别总结
2019/02/20 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
python频繁写入文件时提速的方法
2019/06/26 Python
python使用minimax算法实现五子棋
2019/07/29 Python
原生python实现knn分类算法
2019/10/24 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
停电通知范文
2015/04/16 职场文书
经济纠纷起诉状
2015/05/20 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书