Python的零基础超详细讲解(第十一天)-Python字典的基本实力

基础系列往期文章如下:

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中一种常见的数据类型,用于存储具有映射关系的数据。

在我们的日常生活中,很多数据都"组队"出现:如图书编号和图书、商品条码和名称、学生和科目成绩.....

每本图书都有自己的编号,每件商品会有专属的条码,每位学生都有对应的科目成绩...….这些成对的数据间的对应关系就属于映射关系。

简单地说,你可以把映射关系理解为两个数据间的一种对应关系。

使用字典来存储这些具有映射关系的数据会更简洁,处理起来也更方便。

接下来,我就教你创建一个字典,你先看看字典的语法:

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第1张图片

我们用一个花括号{}把这些"成对的"数据括起来,如: {'小白': 90, '小黑': 85},就可以定义一个字典。

在字典中,这些"成对"的数据称为键值对,如:"小白":90就是一个键值对。

字典中的数据以键值对的形式存储,不同键值对之间用英文逗号,隔开。

键值对又由键(key)和值(value)组成,键和值用英文冒号:连接,键在冒号之前,值在冒号之后。

在字典{'小白': 90, '小黑': 85}中,如姓名:'小白','小黑'就属于键,对应的成绩:90,85就属于值。

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第2张图片

# 根据要求创建一个字典,并赋值给变量 info

info = {'姓名': '张三', '年龄': 22, '身高': 175.6}

# 打印info

print(info)
复制代码

接下来,我们来观察下字典info,看看字典中键和值的数据类型有哪些?

info = {

    '个人简介': ('小白', '男'),

    '兴趣爱好': ['游戏', '电影'],

    '联系方式': {'电话': 99996666, '邮箱': '[email protected]'}

}
复制代码

这个字典"有点长",你能找出字典中的值,并说出它们的数据类型吗?

为了让你更清楚地观察这个字典,我把它分成三行来写,:

当然,不管是写成一行还是三行,字典本身并没有改变。

你可以清晰的看出字典info中3个键值对。

第一个键值对: '个人简介': ('小白', '男')

键是'个人简介',所对应的值是('小白','男'),对于('小白','男')这种数据类型,你还有印象吗?

这是我们刚才复习的:元组。

第二个键值对: '兴趣爱好': ['游戏', '电影']

键是'兴趣爱好',所对应的值是['游戏','电影'],那么['游戏','电影']又属于什么数据类型?

没错,这是一个列表。

元组,列表,字典也可以作为字典中的值。


我们把刚刚探究的字典中键和值的数据类型进行一个总结:

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第3张图片

字典的简单操作

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第4张图片

字典中值的提取

字典中的数据都是以键值对的形式存储,字典中的每个键都是唯一的,而每个键都会映射一个值。

你可以把字典想象成一个"图书馆”,图书馆中每一本图书都对应一个编号,你通过编号就能找到书。

正是因为键和值之间具有映射关系,你才能通过键提取到值。

运行下面的代码,在终端输入成绩表中的姓名,如:小白或小黑,看看代码运行的结果。

score_table = {'小白': 90, '小黑': 85}

name = input('请输入姓名:')

print(score_table[name])
复制代码

是不是通过姓名就查到了成绩?我们来分析一下取值过程:

首先:我们创建了一个字典,存储两个学员的姓名和成绩。

然后:当在终端输入名字,例如:'小黑',那么'小黑'就被赋值给变量name,即name='小黑',此时,score_table[name]相当于score_table['小黑']。

最后,通过代码: print(score_table['小黑'),就打印出了你的成绩:88

这样,通过姓名(键)就获取到了成绩(值)。从字典中提取值的语法是这样的:

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第5张图片

是不是觉得语法字典[键]很眼熟?和提取列表中元素的语法列表[索引]类似。

但如果你输入的姓名不在"成绩表"里,程序就会报错哦!

运行下面的代码,你可以任意输入一个姓名,如:小蓝,试一试。(报错点击【跳过本题】)

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。

我们刚刚学了两种取值的方法,来归纳一下:

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第6张图片

字典中值的修改

如何修改字典中的值?运行下面的代码,观察字典中的值的修改方法。

info = {'书名': '红高粱', '价格': 35.5, '销量排名': 50}

# 修改键值对:将价格修改为32

info['价格'] = 32

# 打印info,检查一下是否修改成功啦!

print(info)
复制代码

打印结果显示,价格数据已经从35.5改为32了。

字典中值的修改分两步:

第一步:根据键取出要改的值:info['价格'],第二步:赋上新值:info['价格']=32,值就修改成功啦。

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第7张图片

键值对的增添

学完了字典中值的提取和修改,如果要往字典里添加新的键值对,又应该怎么操作?

运行下面的代码,观察键值对增添的语法。

info = {'书名': '红高粱', '价格': 35.5, '销量排名': 50}

# 添加键值对:作者是莫言

info['作者'] = '莫言'

# 打印info,检查是否添加成功了

print(info)
复制代码

给字典里添加新的键值对,语法格式是:字典[新键名]=新值,如: info['作者']='吉他'。

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第8张图片

有的时候,我们也可以先创建一个空字典,然后根据实际情况往里添加键值对。

那什么是空字典?

就是字典里面“空空如也”,没有键值对。

# 使用一对花括号创建一个空字典,赋值给变量score_table

score_table = {}
复制代码

键值对的删除

如何删除字典中的键值对?运行下面的代码,观察删除键值对的语法。

info = {'书名': '红高粱', '价格': 35.5, '销量排名': 50, '作者': '莫言'}

# 删除键值对:作者是莫言

del info['作者']

# 打印info,检查是否删除成功了

print(info)
复制代码

删除字典中的键值对的语法: del字典[键名],del是“删除"的英文单词delete的缩写哦~

Python的零基础超详细讲解(第十一天)-Python字典的基本实力_第9张图片

你们的支持是我最大的动力!!记得三连哦~mua 欢迎大家阅读往期的文章哦~

你可能感兴趣的:(python,程序员,python,开发语言,后端)