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实现程序的单一实例用法分析
Jun 03 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
Python批量更改文件名的实现方法
Oct 29 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
Python代码块及缓存机制原理详解
Dec 13 Python
对python中各个response的使用说明
Mar 28 Python
jupyter实现重新加载模块
Apr 16 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
如何解决.cuda()加载用时很长的问题
May 24 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
javascript 表单的友好用户体现
2009/01/07 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
Python学习笔记(二)基础语法
2014/06/06 Python
python实现图片处理和特征提取详解
2017/11/13 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
python爬虫可以爬什么
2020/06/16 Python
python实现逻辑回归的示例
2020/10/09 Python
台湾旅游网站:灿星旅游
2018/10/11 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
临床护理求职信
2014/04/26 职场文书
大专生找工作自荐书
2014/06/10 职场文书
研修心得体会
2014/09/04 职场文书
建党伟业观后感
2015/06/01 职场文书
运动会开幕式致辞
2015/07/29 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android