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通过线程实现定时器timer的方法
Mar 16 Python
python 文件操作api(文件操作函数)
Aug 28 Python
Python使用filetype精确判断文件类型
Jul 02 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
Python中pillow知识点学习
Apr 30 Python
python判断自身是否正在运行的方法
Aug 08 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
Python 批量读取文件中指定字符的实现
Mar 06 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
python实现测试工具(一)——命令行发送get请求
Oct 19 Python
Python3.10的一些新特性原理分析
Sep 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
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
JS实现复制功能
2017/03/01 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
Python简单日志处理类分享
2015/02/14 Python
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
python 多个参数不为空校验方法
2019/02/14 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
Python类super()及私有属性原理解析
2020/06/15 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
python 实现逻辑回归
2020/12/30 Python
美国社交购物市场:MassGenie
2019/02/18 全球购物
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
年终晚会主持词
2014/03/25 职场文书
怎样写离婚协议书
2014/09/10 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
区域经理岗位职责
2015/02/02 职场文书
绿色环保倡议书
2015/04/28 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python