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中的闭包详细介绍和实例
Nov 21 Python
Python脚本实现下载合并SAE日志
Feb 10 Python
python实现批量下载新浪博客的方法
Jun 15 Python
Python实现LRU算法的2种方法
Jun 24 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
如何用Python合并lmdb文件
Jul 02 Python
Python读取表格类型文件代码实例
Feb 17 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
Feb 26 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
Apr 07 Python
Python实现http接口自动化测试的示例代码
Oct 09 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多维数组去掉重复值示例分享
2014/03/02 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
python实现比较文件内容异同
2018/06/22 Python
python使用tornado实现登录和登出
2018/07/28 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
初中生学习生活的自我评价
2013/11/20 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
单位活动策划方案
2014/08/17 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android
详解Vue slot插槽
2021/11/20 Vue.js
Python中的 Set 与 dict
2022/03/13 Python