浅析python 字典嵌套


Posted in Python onSeptember 29, 2020

为什么需要嵌套?

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套 。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

字典列表

例如:字典alien_0包含一个外星人的信息,但无法存储第二个外星人的信息。怎么办呢?

我们可以创建三个外星人字典,那么问题来了,我们需要的是大量的外星人,有没有更简单的方式呢?

alien_0 = {'color':'blue','points':'5'}
alien_1 = {'color':'blue','points':'5'}
alien_2 = {'color':'blue','points':'5'}
aliens = []
for number in range(5):
 new_alient = {'color':'blue','points':'5','speed':'slow'}
 aliens.append(new_alient)
for i in aliens:
 print(i)
print(str(len(aliens)))

输出

{'color': 'blue', 'points': '5', 'speed': 'slow'}
{'color': 'blue', 'points': '5', 'speed': 'slow'}
{'color': 'blue', 'points': '5', 'speed': 'slow'}
{'color': 'blue', 'points': '5', 'speed': 'slow'}
{'color': 'blue', 'points': '5', 'speed': 'slow'}
5

这些外星人都有相同的特征。在python看来,每个外星人都是独立的,但是这样并不符合业务需求。

例如:将前三个外星人修改成黄色、速度中等且值为10个点

aliens = []
for number in range(5):
 new_alient = {'color':'blue','points':'5','speed':'slow'}
 aliens.append(new_alient)
for alien in aliens[:3]:
 if alien['color'] == 'blue':
  alien['color'] = 'yellow'
  alien['speen'] = 'medium'
  alien['points'] = 10
for alien in aliens:
 print(alien)

输出

{'color': 'yellow', 'points': 10, 'speed': 'slow', 'speen': 'medium'}
{'color': 'yellow', 'points': 10, 'speed': 'slow', 'speen': 'medium'}
{'color': 'yellow', 'points': 10, 'speed': 'slow', 'speen': 'medium'}
{'color': 'blue', 'points': '5', 'speed': 'slow'}
{'color': 'blue', 'points': '5', 'speed': 'slow'}

这里还可以使用if-elif-else语句,更加详细的表述每个外星人的属性。

在字典中存储列表

例如:买煎饼果子的时候,使用列表的话可以描述煎饼果子可以加什么配料。如果使用字典,不仅能描述配料,还能描述煎饼果子的产地等信息

jbgz = {'origin':'天津','toppings':['鸡蛋','香肠']}
print('煎饼果子产地是:' + jbgz['origin'] + '。你可以选择添加:')
for topping in jbgz['toppings']:
 print(topping)

输出

煎饼果子产地是:天津。你可以选择添加:
鸡蛋
香肠

例如:调查程序员们喜欢都喜欢什么编程语言

languages = {
 'jens':['python','java'],
 'sarah':['c','ruby'],
 'hack':['go']
}
for name,language in languages.items():
 print(name.title() + "'s favorite languages are:")
 for i in language:
  print('\t' + i.title())

输出

Jens's favorite languages are:
Python
Java
Sarah's favorite languages are:
C
Ruby
Hack's favorite languages are:
Go

在字典中存储字典

例如:网站内存储每个用户的姓、名、住址,访问这些信息

users = {
 '岳云鹏':{
  '姓':'岳',
  '名':'龙刚',
  '住址':'北京'
 },
 '孟鹤堂':{
  '姓':'孟',
  '名':'祥辉',
  '住址':'北京'
 }
}
for username,user_info in users.items():
 print('\n艺名:'+ username)
 full_name = user_info['姓'] + '' + user_info['名']
 location = user_info['住址']
 print('\t姓名:' + full_name)
 print('\t住址:' + location)

输出

艺名:岳云鹏
姓名:岳龙刚
住址:北京

艺名:孟鹤堂
姓名:孟祥辉
住址:北京

以上就是浅析python 字典嵌套的详细内容,更多关于python 字典嵌套的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
Python下的subprocess模块的入门指引
Apr 16 Python
在Python中操作时间之mktime()方法的使用教程
May 22 Python
python3编码问题汇总
Sep 06 Python
python生成器,可迭代对象,迭代器区别和联系
Feb 04 Python
Python多进程fork()函数详解
Feb 22 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 Python
使用Bazel编译TensorBoard教程
Feb 15 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
python 安装移动复制第三方库操作
Jul 13 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
May 12 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 Python
详解基于Scrapy的IP代理池搭建
Sep 29 #Python
Python 创建守护进程的示例
Sep 29 #Python
Python 解析xml文件的示例
Sep 29 #Python
Python 字典一个键对应多个值的方法
Sep 29 #Python
python 获取字典特定值对应的键的实现
Sep 29 #Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 #Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 #Python
You might like
PHP批量生成缩略图的代码
2008/07/19 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
vue.js表格分页示例
2016/10/18 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
如何使用python代码操作git代码
2020/02/29 Python
Python while true实现爬虫定时任务
2020/06/08 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
浅析NumPy 切片和索引
2020/09/02 Python
党员培训思想汇报
2014/01/07 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
义和团口号
2014/06/17 职场文书
党性观念心得体会
2014/09/03 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python