python自学Day05(自学书籍python编程从入门到实践)
第6章 字典
6.1 一个简单的字典
- 先跟随书本创建一个简单的字典感受一下。
alien_0 = {'color':'green','points':5}
print(alien_0['color'])
print(alien_0['points'])
输出结果为:
green
5
- 第1行 创建一个alien_0的字典 key 分别为 color 和 points
- 第2行 读取color对应的值 并且 打印出来
- 第3行 读取points对应的值 并且 打印出来
6.2 使用字典
- 字典是一些列的键-值对,每个键都与一个值相关联。
- 可以使用键来访问与之对应的值,值可以是数字、字符串、列表乃至字典。
- 字典是放在{}中一系列的键-值对。键与值之间用 冒号 :隔开
6.2.1 访问字典中的值
- 要获取与键相关的值,可以依次指定字典名和放在方括号内的键 如6.1下代码 alien_0['color']
6.2.2 添加键-值对
- 字典是一种动态结构,可以随时添加键-值对。
- 要添加键-值对,可依次指定字典名、用方括号括起来的键和相关联的值。
- python中不关心键-值对的添加顺序,而只是关心键和值之间的关联联系。
alien_0 = {'color':'green','points':5}
#在字典中添加一个新的键 x_position 值为0
alien_0['x_position'] = 0
#在字典中添加一个新的键 y_position 值为25
alien_0['y_position'] = 25
#打印检查下列表
print(alien_0)
输出结果为:
{'color': 'green', 'points': 5, 'x_position': 0, 'y_position': 25}
6.2.3 先创建一个空字典
- 先创建一个空字典,然后逐个往里面添加键-值对
alien_0 = {}
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)
输出结果为:
{'color': 'green', 'points': 5}
6.2.4 修改字典中的值
- 要修改字典中的值。可以依次指定字典名、用方括号括起来的键以及与键关联的新值。
alien_0 = {}
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)
#修改字典中 color 关联值为 red
alien_0['color'] = 'red'
#再度输出字典检查变化
print(alien_0)
输出结果为:
{'color': 'green', 'points': 5}
{'color': 'red', 'points': 5}
6.2.5 删除键-值对
- 使用del语句将字典中的键-值对彻底删除。
- 使用del语句时,必须指定字典名和要删除的键。
alien_0 = {'color':'green','points':5}
del alien_0['color']
print(alien_0)
输出结果为:
{'points': 5}
6.2.6 由类似对象组成的字典
- 字典不仅可以像前面的示例一样存储一个对象,我们也可以用来存贮众多对象的同一信息。
- 换行时需要一行缩进死歌空格(默认tab键)最后一行一个缩进加花括号。
- 还有一些其他可行的格式设置方法。
- print 内容较多需要换行编写代码时,也需要缩进。
#注意 缩进 逗号 花括号 格式
favorite_language = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
print("sarah's favorite language is "+
favorite_language['sarah'].title()+
'.')
输出结果为:
sarah's favorite language is C.
练习:
#练习6-1
My_Lover ={
'first_name':'zhang',
'last_name':'keai',
'age':18,
'city':'xiaogan'
}
print(My_Lover)
输出结果为:
{'first_name': 'zhang', 'last_name': 'keai', 'age': 18, 'city': 'xiaogan'}
6.3 遍历字典
- 遍历字典三种方法:键-值对 键 值
6.3.1 遍历所有的键-值对
- 使用for循环编写字典的遍历循环,声明两个变量 key valu(可取任意合规名称)用于存贮对应的键、值。
- 方法items()表示返回一个键-值对列表。
- 键-值对的返回顺序与存贮顺序不同,字典是无序的,只关心键-值之间的关系
favorite_language = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for key,value in favorite_language.items():
print(key.title()+
'\'s favorite language is'+
value.title())
输出结果为:
Jen's favorite language isPython
Sarah's favorite language isC
Edward's favorite language isRuby
Phil's favorite language isPython
6.3.2 遍历字典中所有的键
- 遍历字典时,python中默认是遍历字典的所有键。
- 我们也可以使用方法keys(),这样可以更清晰更明确。
- 方法keys并非只能用于遍历,实际上他返回一个列表,其中包含字典中所有的键。
favorite_language = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
friend_name = ['phil','sarah']
for name in favorite_language.keys():
if name in friend_name:
print('My friend '+
name +
' is in the list!')
输出结果为:
My friend sarah is in the list!
My friend phil is in the list!
6.3.3 按顺序遍历字典中所有键
- 字典总是明确的记录键和值之间的关系,但是获取字典元素时,获取顺序是不可预测的。
- 要以特定的顺序返回元素,一种方法是在for循环中对返回的键做排序。
- 使用函数sorted来获得特定顺序拍了的键列表的副本。
favorite_language = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for name in sorted(favorite_language.keys()):
print(name.title() + ' is in the dictionary')
输出结果为:
Edward is in the dictionary
Jen is in the dictionary
Phil is in the dictionary
Sarah is in the dictionary
6.3.4 遍历字典中的所有值
- 字典中键是独一无二的,不可重复的,但是值并不是,像上述代码中的 python在值中出现了两次。
- 可以使用values()方法对字典进行值得遍历,返回一个值得列表,不包含任意键。
- 如果字典中存在大量重复值,而这些值我们不想要他重复,我们可以使用set()来对返回值得列表去重。
- 集合类似于列表,但是集合内的元素必须是独一无二的。
favorite_language = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for language in set(favorite_language.values()):
print(language.title())
输出结果为:
Ruby
C
Python
6.4 嵌套
- 将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。
6.4.1 字典列表
#创建空列表
aliens = [ ]
#使用for循环计次循环,循环30次。
for new_alien in range(0,30):
#每次循环将字典new_alien添加到列表中去
new_alien={'color':'green','points':5}
aliens.append(new_alien)
#结束后输出列表的长度,可以看到包含30个元素,每个元素都是独立的列表。
print(len(aliens))
输出结果为:
30
6.4.2 在字典中存储列表
- 每当需要在字典的一个键关联多个值得时候,都可以在字典中嵌套一个列表。
- 列表和字典的嵌套层级不应太多。如过嵌套层级太多,很有可能有更简单的解决问题方案。
My_imformation = {
'姓名':'饶庆龙',
'爱好':['篮球','足球','英雄联盟']
}
print('你好'+My_imformation['姓名']+'先生!这是您的爱好:')
for hobbies in My_imformation['爱好']:
print('\t'+hobbies )
输出结果为:
你好饶庆龙先生!这是您的爱好:
篮球
足球
英雄联盟
6.4.3 在字典中存贮字典
- 可以在字典中嵌套字典,但是这样做,代码可能很快复杂起来。
- 倘若字典包含不同的键,for内部循环的代码将会更加的复杂。
My_imformation ={
'饶庆龙': {
'性别':'男',
'住址':'湖北',
'爱好':['篮球','足球','英雄联盟']
},
'张余丽':{
'性别':'女',
'住址':'北京',
'爱好':['王者','睡觉','追剧']
},
}
Names = []
for name,imformations in My_imformation.items():
if imformations['性别'] == '男':
print(name+'先生的爱好是:')
for hobby in imformations['爱好']:
print('\t'+hobby)
if imformations['性别'] == '女':
print(name+'女士的爱好是:')
for hobby in imformations['爱好']:
print('\t'+hobby)
- 第1行到第12行,我们构建了一个字典。
- 字典中包含了两个 键 一个 饶庆龙 一个 张余丽
- 第14行 我们使用for循环我们构建遍历字典键-值对 获得键存贮为 name 获得值存储为 imformations
- 第15行 我们判断值中列表对应的键 性别的值是否是 男
- 第16行 判断成功的话我们输出 name+先生的爱好是,如果判断失败进入第19行判断
- 第17行 对 ‘爱好’ 对应的列表值进行循环输出
- 第18行 输出时加上 '\t'制表符以及爱好内容循环输出
- 第19行 当第15行条件测试不通过时跳到该条条件测试
输出结果为:
饶庆龙先生的爱好是:
篮球
足球
英雄联盟
张余丽女士的爱好是:
王者
睡觉
追剧
练习:
Rao = {
'first_name':'rao',
'last_name':'qinglong',
'age':26,
'city':'xiaogan'
}
Zhang = {
'first_name':'zhang',
'last_name':'yuli',
'age':19,
'city':'beijing'
}
Li = {
'first_name':'li',
'last_name':'keqiang',
'age':36,
'city':'hainan'
}
Imformation = [Rao,Zhang,Li]
for info in Imformation:
print(info)
输出结果为:
{'first_name': 'rao', 'last_name': 'qinglong', 'age': 26, 'city': 'xiaogan'}
{'first_name': 'zhang', 'last_name': 'yuli', 'age': 19, 'city': 'beijing'}
{'first_name': 'li', 'last_name': 'keqiang', 'age': 36, 'city': 'hainan'}
Rao = {
'first_name':'rao',
'last_name':'qinglong',
'age':26,
'city':'xiaogan'
}
Zhang = {
'first_name':'zhang',
'last_name':'yuli',
'age':19,
'city':'beijing'
}
Li = {
'first_name':'li',
'last_name':'keqiang',
'age':36,
'city':'hainan'
}
Imformation = [Rao,Zhang,Li]
for info in Imformation:
print(info['first_name'].title()+info['last_name'].title()+' is '+str(info['age']) + ' in '+info['city'].title())
输出结果为:
RaoQinglong is 26 in Xiaogan
ZhangYuli is 19 in Beijing
LiKeqiang is 36 in Hainan
python自学Day05(自学书籍python编程从入门到实践)的更多相关文章
- 《Python编程:从入门到实践》分享下载
书籍信息 书名:<Python编程:从入门到实践> 原作名:Python Crash Course 作者: [美] 埃里克·马瑟斯 豆瓣评分:9.1分(2534人评价) 内容简介 本书是一 ...
- 《python编程从入门到实践》2.3字符串
书籍<python编程从入门到实践> 2.3字符串 知识模块 print()函数,函数名称突出为蓝色,输出括号内的变量或者字符创. 变量名的命名:尽量小写字母加下划线并且具有良好的描述性, ...
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
- Python编程从入门到实践笔记——文件
Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...
- Python编程从入门到实践笔记——类
Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
- Python编程从入门到实践笔记——字典
Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...
- Python编程从入门到实践笔记——if语句
Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...
- Python编程从入门到实践笔记——操作列表
Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...
随机推荐
- 让.NetCore程序跑在任何有docker的地方
一.分别在Windows/Mac/Centos上安装Docker Windows上下载地址:https://docs.docker.com/docker-for-windows/install/(wi ...
- C# 数据操作系列 - 13 SugarSql初探
0. 前言 前言,暂时挥别NHibernate(虽然我突然发现这玩意还挺有意思的,不过看得人不多).大步进入了有很多小伙伴向我安利的SQLSugar,嗯,我一直叫SugarSQL,好像是这个吧? 这是 ...
- C语言合法标识符(hud2024)
输入方式:先输入一个整型,再循环输入带空格的字符串. 思考:整型用scanf_s()输入.大循环输入字符串前用getchar()函数读取缓冲区的字符.然后,输入带空格的字符串就要用”gets_s()“ ...
- Java流程控制以及顺序、选择、循环结构
目录 用户交互Scanner Scanner对象 hasNext()与next() hasNextLine()与nextLine() Scanner进阶用法 求和与平均数 顺序结构 选择结构 if单选 ...
- Excel_通过单元格的值来引用以单元格值命名的sheet
1.通过单元格的值来引用以单元格值命名的sheet,在做多个类似sheet的统计结果时效率比较高 当一项测试中有很多个模块,每个模块中有很多条测试用例 将以上测试用例整理在Excel中,每个模块一个s ...
- element 的 Cascader 级联选择器设定默认值
Cascader 级联选择器 发现在很多的CRM管理系统里面,都有不少页面是用到这种级联选择器的,确实,功能很实用, 不过要设置默认值则应该让不少人头痛,因为你选择的时候 @change 事件的参数就 ...
- 使用VuePress搭建个人博客
使用VuePress搭建个人博客 VuePress 是一个基于 Vue 的静态网站生成器.其中主要用到:Vue,VueRouter,Webpack. 类似的工具:hexo 基于 Markdown 语法 ...
- MOS管的栅极和源极之间的电阻
MOS管的栅极和源极之间的电阻: 一是为场效应管提供偏置电压:二是起到泻放电阻的作用:保护栅极G-源极S: 保护栅极G-源极S: 场效应管的G-S极间的电阻值是很大的,这样只要有少量的静电就能使他的G ...
- 化学元素周期表的英文全称 Periodic Table of the Elements
化学元素周期表的英文全称 Periodic Table of the Elements 缩写 PTE 拉丁文 英文 1 H 氢 Hydrogenium Hydrogen 2 He 氦 Helium ...
- python脚本:在Ubuntu16系统上基于xtrabackup2.4和mysql5.7实现数据库数据的自动化备份和恢复,亲测有效!
1 安装教程 官网安装教程:https://www.percona.com/doc/percona-xtrabackup/2.4/installation/apt_repo.html -------- ...