第9课 字典

一、什么是字典(Dictionary)

大家回想一下,使用《新华字典》查找生字的过程,通常有两种方式:一种是根据读音查找,另一种是根据偏旁部首查找。无论哪一种,都有一个共同的特点:根据关键信息,查找目标内容。

Python将关键信息简化成"键(key)",将目标内容简化成"值(value)",键和值是一一对应的,这种通过键值对存储数据的模型,就是字典(Dictionary)。

字典的具体表现形式如下:字典变量 = {key1: value1, key2: value2}。每一组键值对键和值使用冒号(:)分隔,每组键值对之间,使用逗号(,)分割,用大括号{}将所有的键值对括起来。

重点注意:

(1)键是字典操作数据的重要凭证,所以,键必须是唯一的,且数据类型是不可变的。理论上,可哈希(hash)的数据类型都可以作为key。

(2)字典不是序列,所以没有顺序,也没有索引。

二、字典的创建(声明)

1、直接创建。按照字典的格式书写即可。

2、用dict()方法创建字典。这里只需掌握使用关键字存储字典信息。

三、字典的操作

1、元素访问:

字典中的每一组键值对就是字典的一个元素,常见的访问方式如下:

(1)使用键(key)直接访问。

操作方法如下:字典变量名键,当键不存在时,报错KeyError。

(2)使用字典的get()方法访问。

操作方法如下:字典变量名.get(键),当键不存在时,返回空值。

2、元素的修改与添加:

在直接使用key访问的基础上,赋值即可。

操作方法:字典变量名key = value,如果key存在,将key对应的值更新成value;如果key不存在,就添加一个键为key,值为value的元素。

3、元素删除:

(1)使用del命令删除元素。

操作方法:del 字典变量名key,如果key不存在,会报错。

(2)使用字典的pop()方法删除元素。

操作方法:字典变量名.pop(key, d),删除key对应的元素,当key不存在的时候,如果设定了默认值d,就会返回默认值,否则会报错。

4、清空字典和删除字典:

使用字典的clear()方法可以清空字典,使用del命令可以删除整个字典。

清空字典是指删除字典里的所有元素,变成空字典;删除字典不仅会删除字典里所有的元素,字典本身也会删除,什么都不剩下。

5、获取字典的长度:

使用len()方法可以获取字典的长度。操作方法与列表一样。

6、使用in检查键是否在字典中:

默认检查的key是否存在字典中,可以使用字典的keys()方法获取字典的key列表。

同样的,如果想查看字典所有的value列表,可以使用字典的values()方法,获取到字典的values列表,就能判断某个值是否存在字典的值中。

四、模拟考题

1、下面代码的输出结果是( )。

python 复制代码
a = {'数学': 90, '语文': 93, '英语': 89, '科学': 98}
print(a['数学'])

A. 93

B. 89

C. 90

D. 98

2、下面代码的输出结果为( )。

python 复制代码
score = {'语文': 95, '数学': 93, '英语': 97}
print(score['语文'] + score['数学']//2)

A. 141

B. 141.5

C. 94

D. 94.0

3、以下程序的运行结果是( )。

python 复制代码
a = {'name': '张三', 'age': 12, 'class': 3}
a['age'] = 15
a['school'] = '沛县中学'
print('age:', a['age'])
print('school:', a['school'])

A. age: 29

school: 沛县中学

B. age: 15

C. age: 15

school: 沛县中学

D. school: 沛县中学

-->参考答案往下翻<--

-->参考答案<--

1~3:BAC

相关推荐
尼给路达哟11 分钟前
node(koa)和python(fastapi)面试
python·面试·fastapi
曲径海盗1 小时前
【Python 学习第 32 天】字符串基础
python·学习笔记·编程入门
田里的水稻2 小时前
PyTorch_torchvision---数据集下载\TensorBoard可视化
人工智能·pytorch·python·深度学习·机器学习
程序员正茂2 小时前
Win11使用自定义训练集训练ncnn模型
python·yolo·图像识别·移动端·ncnn
zwd20052 小时前
Manim 画布尺寸与像素换算详解:frame_width、frame_height、pixel_width 和画质参数(0.21.0 实测)
python·分辨率·manim·数学动画·frame_width·manim教程
最强小杰2 小时前
Claude Opus 4.8 调用报 529 怎么办?并发限制触发过载——退避策略与降级方案完整指南
运维·网络·python·ai
databook2 小时前
MinMax vs Standard vs Robust:三种特征缩放怎么选
python·机器学习·数据分析
在世修行2 小时前
智学文枢:实体模型层
python·orm·sqlalchemy
张张123y3 小时前
# 后端第七课:FastAPI 实战入门(用刚学的 Python 写第一个 API 接口)
开发语言·python·mysql·api·fastapi
CCblandy3 小时前
一致性哈希到底省了多少搬迁?本机实测 3 轮:取模 6→7 搬 85.8%,V=128 只搬 14.3%,虚拟节点太少会被倾斜骗
后端·python·云原生·性能优化·架构