Python学习之路day02——007字典的嵌套
一、字典的嵌套
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你
可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
1、字典与列表的嵌套
字典alien_0包含一个外星人的各种信息,但无法存储第二个外星人的信息,更别说屏幕上
全部外星人的信息了。如何管理成群结队的外星人呢?一种办法是创建一个外星人列表,其中每
个外星人都是一个字典,包含有关该外星人的各种信息。例如,下面的代码创建一个包含三个外
星人的列表:
alien_0 = {'color': 'green', 'points': 5} #外星人1号字典
alien_1 = {'color': 'yellow', 'points': 10} #外星人2号字典
alien_2 = {'color': 'red', 'points': 15} #外星人3号字典
aliens = [alien_0, alien_1, alien_2] #将每个外星人字典做一位一个元素放置到列表中
for alien in aliens: #遍历外星人列表
print(alien)
结果:
{'color': 'green', 'points': 5}
{'color': 'yellow', 'points': 10}
{'color': 'red', 'points': 15}
例子:添加30个外星,并输出前五个外星人的信息
aliens = []
set_number =30
point_number=5
for alien_number in range(set_number):
new_alien={"color":"green","point":point_number,"speed":"slow"}
aliens.append(new_alien)
point_number= point_number+2
for alien in aliens[:5]:
print(alien)
结果:
{'color': 'green', 'point': 5, 'speed': 'slow'}
{'color': 'green', 'point': 7, 'speed': 'slow'}
{'color': 'green', 'point': 9, 'speed': 'slow'}
{'color': 'green', 'point': 11, 'speed': 'slow'}
{'color': 'green', 'point': 13, 'speed': 'slow'}
2、字典中嵌套列表
每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
for name, languages in favorite_languages.items():
if len( languages) >1: #此处languages已经被默认为了 值
print("\n" + name.title() + "'s favorite languages are:")
else :
print("\n" + name.title() + "'s favorite languages is:")
for language in languages:
print("\t" + language.title())
结果:
Jen's favorite languages are:
Python
Ruby
Sarah's favorite languages are:
C
Phil's favorite languages are:
Python
Haskell
Edward's favorite languages are:
Ruby
Go
3、字典中嵌套字典
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
for username, user_info in users.items():
print("\nUsername: " + username)
full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
print("\tFull name: " + full_name.title())
print("\tLocation: " + location.title())
结果:
Username: aeinstein
Full name: Albert Einstein
Location: Princeton
Username: mcurie
Full name: Marie Curie
Location: Paris
注意:表示每位用户的字典的结构都相同,虽然Python并没有这样的要求,但这使得嵌
套的字典处理起来更容易。倘若表示每位用户的字典都包含不同的键, for循环内部的代码将
会非常复杂。
转载于:https://www.cnblogs.com/jokerwang/p/9254918.html
Python学习之路day02——007字典的嵌套相关推荐
- python学习之路day02
一..pyc是什么? 1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存 ...
- Python学习之路—2018/7/14
Python学习之路-2018/7/12 3.功能开发 3.3 设计博客首页 博客首页中最重要的就是中间的文章区域,所以我首先把文章区域设计出来,一开始并没有数据,如果用orm添加或者直接在数据库添加 ...
- Python学习之路—2018/6/20
Python学习之路-2018/6/20 1.模板语法之变量 views.py def index(request):import datetimes="gyq"l=[1,2,3] ...
- Python学习之路9☞面向对象的程序设计
Python学习之路9☞面向对象的程序设计 一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什 ...
- Python学习之路—2018/6/27
Python学习之路-2018/6/27 1.多表操作 添加记录 添加多对多关系 方式一:传入Author对象 book = Book.objects.get(bid=1) gy = Author.o ...
- python之路 mysql 博客园_教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql...
教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql Easy_install安装MySQLdb 很简单,以至于我不晓得该怎么说.一句话. sodu ...
- Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)
Python学习笔记:列表.字典与集合解析(List, Dict and Set Comprehensions) 1.列表解析 最受喜爱的Python语言特性.过滤一个集合的元素生成一个新的列表. 一 ...
- python 学习之路开始了
python 学习之路开始了.....记录点点滴滴.... 转载于:https://www.cnblogs.com/chobit/p/6163287.html
- Python学习之路5☞文件处理
Python学习之路5☞文件处理 一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 1 正趣果上果 2 Interesting fruit fruit 3 4 ...
- python学习之路0x00
Python学习之路0x00 在学习python之前,要知道什么是python? python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,与c语言不同, c语言要编译后才能执行.而 ...
最新文章
- 单链表的前K个的逆序输出
- IOS 消息机制(NSNotificationCenter)
- SAN,NAS区别的联系
- Docker中运行Springboot jar时的变量传递
- 不使用加减乘除符号计算加法
- 工作激发了我的热情,并不断激励着我” - SAP成都研究院Jerry Wang
- xampp for linux
- opencv基本的图像处理函数
- java里面object和string的相互转换
- hdu1263 简单模拟
- MES系统是什么?MES系统的操作流程是怎样?
- 安卓apk反编译教程
- 在浏览器中清除缓存和 Cookies
- java 实现 指派_Activiti 开发案例之动态指派任务
- 世纪佳缘推智能设备 是衰退迹象 还是第二春征兆?
- 用8051单片机编程由P1.0和P1.1引脚分别输出周期为1ms和500us的方波
- 售前工作感悟:思想决定售前深度!
- 【Vivado】 [Place 30-574] 时钟使用普通IO时的报错解决办法
- 新梦想计算机等级考试2016,2016年计算机等级一级考试试题及解析
- Mac系统下无法删除文件夹