Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客
Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CSDN博客
Python的零基础超详细讲解(第三天)-Python的基础语法_编程简单学的博客-CSDN博客
Python的零基础超详细讲解(第四天)-Python的数据类型_编程简单学的博客-CSDN博客
Python的零基础超详细讲解(第五天)-Python的运算符_编程简单学的博客-CSDN博客
Python的零基础超详细讲解(第六天)-Python的数字类_编程简单学的博客-CSDN博客
Python的零基础超详细讲解(第八天)-Python的条件判断_编程简单学的博客-CSDN博客
Python的零基础超详细讲解(第十天)-Python的input()函数_编程简单学的博客-CSDN博客
python入门到进阶,爬虫数据分析全套资料分享讲解 (#1) · Issue · 编程简单学 / Cs
字典是Python中一种常见的数据类型,用于存储具有映射关系的数据。
在我们的日常生活中,很多数据都"组队"出现:如图书编号和图书、商品条码和名称、学生和科目成绩.....
每本图书都有自己的编号,每件商品会有专属的条码,每位学生都有对应的科目成绩...….这些成对的数据间的对应关系就属于映射关系。
简单地说,你可以把映射关系理解为两个数据间的一种对应关系。
使用字典来存储这些具有映射关系的数据会更简洁,处理起来也更方便。
接下来,我就教你创建一个字典,你先看看字典的语法:
我们用一个花括号{}把这些"成对的"数据括起来,如: {'小白': 90, '小黑': 85},就可以定义一个字典。
在字典中,这些"成对"的数据称为键值对,如:"小白":90就是一个键值对。
字典中的数据以键值对的形式存储,不同键值对之间用英文逗号,隔开。
键值对又由键(key)和值(value)组成,键和值用英文冒号:连接,键在冒号之前,值在冒号之后。
在字典{'小白': 90, '小黑': 85}中,如姓名:'小白','小黑'就属于键,对应的成绩:90,85就属于值。
# 根据要求创建一个字典,并赋值给变量 info
info = {'姓名': '张三', '年龄': 22, '身高': 175.6}
# 打印info
print(info)
复制代码
接下来,我们来观察下字典info,看看字典中键和值的数据类型有哪些?
info = {
'个人简介': ('小白', '男'),
'兴趣爱好': ['游戏', '电影'],
'联系方式': {'电话': 99996666, '邮箱': '[email protected]'}
}
复制代码
这个字典"有点长",你能找出字典中的值,并说出它们的数据类型吗?
为了让你更清楚地观察这个字典,我把它分成三行来写,:
当然,不管是写成一行还是三行,字典本身并没有改变。
你可以清晰的看出字典info中3个键值对。
第一个键值对: '个人简介': ('小白', '男')
键是'个人简介',所对应的值是('小白','男'),对于('小白','男')这种数据类型,你还有印象吗?
这是我们刚才复习的:元组。
第二个键值对: '兴趣爱好': ['游戏', '电影']
键是'兴趣爱好',所对应的值是['游戏','电影'],那么['游戏','电影']又属于什么数据类型?
没错,这是一个列表。
元组,列表,字典也可以作为字典中的值。
我们把刚刚探究的字典中键和值的数据类型进行一个总结:
字典中的数据都是以键值对的形式存储,字典中的每个键都是唯一的,而每个键都会映射一个值。
你可以把字典想象成一个"图书馆”,图书馆中每一本图书都对应一个编号,你通过编号就能找到书。
正是因为键和值之间具有映射关系,你才能通过键提取到值。
运行下面的代码,在终端输入成绩表中的姓名,如:小白或小黑,看看代码运行的结果。
score_table = {'小白': 90, '小黑': 85}
name = input('请输入姓名:')
print(score_table[name])
复制代码
是不是通过姓名就查到了成绩?我们来分析一下取值过程:
首先:我们创建了一个字典,存储两个学员的姓名和成绩。
然后:当在终端输入名字,例如:'小黑',那么'小黑'就被赋值给变量name,即name='小黑',此时,score_table[name]相当于score_table['小黑']。
最后,通过代码: print(score_table['小黑'),就打印出了你的成绩:88
这样,通过姓名(键)就获取到了成绩(值)。从字典中提取值的语法是这样的:
是不是觉得语法字典[键]很眼熟?和提取列表中元素的语法列表[索引]类似。
但如果你输入的姓名不在"成绩表"里,程序就会报错哦!
运行下面的代码,你可以任意输入一个姓名,如:小蓝,试一试。(报错点击【跳过本题】)
score_table = {'小白': 90, '小黑': 85}
name = input('请输入姓名:')
print(score_table[name])
复制代码
如果键不在字典里,通过字典[键名]的方式来取值时,代码就会报错。
但我们不希望它报错,而是给出提示:“成绩表里没有这位同学的成绩”。
那这种时候我们就可以使用get()方法从字典中取值。运行下面代码,根据提示输入姓名,如:小蓝。
score_table = {'小白': 90, '小黑': 85}
name = input('请输入姓名:')
print(score_table.get(name))
复制代码
点击右上角的【重做】按钮,输入不同姓名,例如:小白、小黑、小红等,观察通过get()方法从字典中取值的结果。
当我们使用get()方法来取值时,不管键是否在字典中,程序都不会报错。语法是这样的:
字典.get(键名),例如: score_table.get("小白")。
如果键在字典里: score_table.get("小白")就可以取出对应的值:90。
如果键不在字典: score_table.get("小红")运行的结果就会是None。
None是 Python 中一个特殊的值,代表“无"的意思。
我们还可以将字典.get(键名)和if 语句结合,来实现一些功能。
运行下面的代码,根据提示可以任意输入姓名,如:小红。
score_table = {'小白': 90, '小黑': 85}
name = input('请输入姓名:')
# 判断键是否在字典里
if score_table.get(name) is None:
print('成绩表里没有这位同学的成绩')
else:
print('{}的成绩是{}'.format(name,score_table[name]))
复制代码
运行成功后,再点击【重做】按钮,输入小白试试。
我们来分析一下这段代码:
score_table = {'小白': 90, '小黑': 85}
name = input('请输入姓名:')
# 判断键是否在字典里
if score_table.get(name) is None:
print('成绩表里没有这位同学的成绩')
else:
print('{}的成绩是{}'.format(name,score_table[name]))
复制代码
当你输入小红,这个键不在字典score_table 中,score_table.get("小红')运行的结果是: None;
那么: score_table.get(小红')== None条件成立,就执行if语句下的代码块:
print("'成绩表里没有这位同学的成绩")
当你输入小白时,'小白'在字典score_table中,所以score_table.get('小白')运行的结果是:90
那么score_table.get('小白')== None条件不成立,就执行else语句下的代码块:
print('{}的成绩是'.format(name, score_table.get(name))),打印出“小白的成绩是90"。
简单地说,当使用字典.get(键名)这种方法从字典中取值时:
若键在字典里面,直接提取键的值;
若键不在字典里,运行结果是None。
我们刚刚学了两种取值的方法,来归纳一下:
如何修改字典中的值?运行下面的代码,观察字典中的值的修改方法。
info = {'书名': '红高粱', '价格': 35.5, '销量排名': 50}
# 修改键值对:将价格修改为32
info['价格'] = 32
# 打印info,检查一下是否修改成功啦!
print(info)
复制代码
打印结果显示,价格数据已经从35.5改为32了。
字典中值的修改分两步:
第一步:根据键取出要改的值:info['价格'],第二步:赋上新值:info['价格']=32,值就修改成功啦。
学完了字典中值的提取和修改,如果要往字典里添加新的键值对,又应该怎么操作?
运行下面的代码,观察键值对增添的语法。
info = {'书名': '红高粱', '价格': 35.5, '销量排名': 50}
# 添加键值对:作者是莫言
info['作者'] = '莫言'
# 打印info,检查是否添加成功了
print(info)
复制代码
给字典里添加新的键值对,语法格式是:字典[新键名]=新值,如: info['作者']='吉他'。
有的时候,我们也可以先创建一个空字典,然后根据实际情况往里添加键值对。
那什么是空字典?
就是字典里面“空空如也”,没有键值对。
# 使用一对花括号创建一个空字典,赋值给变量score_table
score_table = {}
复制代码
如何删除字典中的键值对?运行下面的代码,观察删除键值对的语法。
info = {'书名': '红高粱', '价格': 35.5, '销量排名': 50, '作者': '莫言'}
# 删除键值对:作者是莫言
del info['作者']
# 打印info,检查是否删除成功了
print(info)
复制代码
删除字典中的键值对的语法: del字典[键名],del是“删除"的英文单词delete的缩写哦~
!
你们的支持是我最大的动力!!记得三连哦~mua 欢迎大家阅读往期的文章哦~