Python的从0到1(二十一)-Python字典的基本使用方法

2021/12/4 14:16:45

本文主要是介绍Python的从0到1(二十一)-Python字典的基本使用方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

字典的简单操作

字典中值的提取

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

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

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

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

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的缩写哦~



这篇关于Python的从0到1(二十一)-Python字典的基本使用方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程