字典的学习3——嵌套——Python编程从入门到实践
嵌套 ?
一系列字典存储在列表or列表作为值存储在字典or字典中套字典
1. 字典列表
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
这样手动一个一个输入太费劲,让其自动生成多个:
aliens = []
# 生成30个
for alien_number in range(30):
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens.append(new_alien)
# 显示前5个
for alien in aliens[:5]:
print(alien)
但此时生成的数量是很多了,可都具有一样的特征,怎么办呢?
for alien in aliens[0:3]:
if alien['color'] == 'green':
alien['color'] = 'yellow'
alien['speed'] = 'medium'
alien['point'] = 10
elif alien['color'] == 'yellow':
alien['color'] = 'red'
alien['speed'] = 'fast'
alien['point'] = 15
通过切片修改部分外星人的特征,就可生成具有不同特征的外星人。
2. 在字典中存储列表
# 存储披萨的信息
pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese'],
}
# 概述所点的披萨
print("You ordered a " + pizza['crust'] + "-crust pizza with the following toppings:")
for topping in pizza['toppings']:
print(topping)
多个键值对时:
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
for name, languages in favorite_languages.items():
print("\n" + name.title() + "'s favorite languages are: ")
for language in languages:
print("\t" + language.title())
运行结果:
Jen's favorite languages are:
Python
Ruby Sarah's favorite languages are:
C Edward's favorite languages are:
Ruby
Go Phil's favorite languages are:
Python
Haskell
但有的键只对应一个值,用are表示就有点不妥,可以对此作进一步改进:
for name, languages in favorite_languages.items():
if len(languages) == 1:
print("\n" + name.title() + "'s favorite languages is " + languages[0].title() + ".") # 打印出一个键对应一个值的情况
else:
print("\n" + name.title() + "'s favorite languages are: ")
for language in languages:
print("\t" + language.title())
3. 字典中存储字典
# 存储两个用户各自的一些信息
users = {
'mary': {
'first': 'albert',
'last': 'mary',
'location': 'princeton',
},
'bary': {
'first': 'maria',
'last': 'bary',
'location': 'paris',
}
}
for username, user_info in users.items():
full_name = user_info['first'] + ' ' + user_info['last']
location = user_info['location'] print("\nUsername: " + username)
print('\tFull name: ' + full_name.title())
print('\tLocation: ' + location.title())
运行结果:
Username: mary
Full name: Albert Mary
Location: Princeton Username: bary
Full name: Maria Bary
Location: Paris
字典的学习3——嵌套——Python编程从入门到实践的更多相关文章
- 字典的学习2——参考Python编程从入门到实践
遍历字典 1. 遍历所有键值对 eg1: user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi',}for key, v ...
- 字典的学习1——参考Python编程从入门到实践
字典:从汉语词意的角度理解,字典就是一个工具书,可以查找某个字.词.成语等的详细解释,字与解释相对应,而Python中字典则是一些列键和值相对应. Python中,字典放在花括号{键:值}中,eg: ...
- Python编程从入门到实践笔记——字典
Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...
- 入门python:《Python编程从入门到实践》中文PDF+英文PDF+代码学习
入门python推荐学习久负盛名的python入门书籍<Python编程从入门到实践>. 书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有"动手试一试& ...
- 《python编程从入门到实践》读书实践笔记(一)
本文是<python编程从入门到实践>读书实践笔记1~10章的内容,主要包含安装.基础类型.函数.类.文件读写及异常的内容. 1 起步 1.1 搭建环境 1.1.1 Python 版本选择 ...
- 《Python编程从入门到实践》_第十章_文件和异常
读取整个文件 文件pi_digits.txt #文件pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取整个文件,再将其内容显示到屏幕 ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
- python编程从入门到实践 alien invasion 项目源码
现在上传一个 python编程从入门到实践 alien invasion 项目源码 以供大家学习参考 跟官方版本可能不太一样,因为是自己写的 也算是给新手一个参考 我用的环境是pycharm 可能需要 ...
随机推荐
- Kestrel: System.Exception: Error -4092 EACCES permission denied
字面理解: 权限问题.. 这种情况往往是因为运行的端口被占用.. 可能是iis上有些站点使用了这个端口.. 也可能是其他原因.. 但大部分是端口问题..
- variant变异 | Epigenome表观基因组 | Disease-susceptible gene 疾病易感基因
paper:cepip: context-dependent epigenomic weighting for prioritization of regulatory variants and di ...
- java 判断list是否为空
问题: 之前用 list!=null 来判断list是否为空,但发现,定义一个list后,即使里面并没有加入任何元素,返回的结果仍旧是 true, 其实,本意是希望在没有任何元素时,返回 false, ...
- GROUP_CONCAT 将mysql多条数据合并为一条
实现将多条数据合并为一条数据,在mysql中可以通过 GROUP_CONCAT 函数实现 上面是潇leader发我的和工作不相关的小小小需求描述,很明显是要把id和name相同的数据合并为一条,下面按 ...
- 性能分析 函数粒度 函数里的一条语句 汇编 反编译 机器指令 %rbx,%rbp
在Linux下做性能分析3:perf - 知乎 https://zhuanlan.zhihu.com/p/22194920 Linux Perf 性能分析工具及火焰图浅析 - 知乎 https://z ...
- 京东HBase平台进化与演进
https://mp.weixin.qq.com/s/7_dxrqFWwIJxNtL9-xD6FA
- Tosca IE 浏览器的Internet Options 配置, 解决login很慢的问题
Screen 1-3 Screen 4-6 Screen 7
- Docs-.NET-C#-指南-语言参考-关键字-值类型:内置数值转换
ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:内置数值转换 1.返回顶部 1. 内置数值转换(C# 参考) 2019/10/22 C# 提供了一组整型和浮点数值类型. 任何 ...
- flutter Dismissible 可以在拖动时隐藏的widget
import 'package:flutter/material.dart'; class DismissedAppPage extends StatefulWidget { @override St ...
- Ionic4.x ion-infinite-scroll 上拉分页加载更多
<ion-header> <ion-toolbar> <ion-title> Tab One </ion-title> </ion-toolbar ...