小白学 Python
课程GitHub
© 2026 小白学 Python · 基于 walter201230/Python 教程
课程目录GitHub
Python 环境加载中…
Dict 与 Set0 / 7
1234567

Dict 与 Set

7 道练习题·预计 30 分钟·做对一题解锁下一段

教学 01 / 08· 已读

第三节:Dict 与 Set

上一节学完了 List 与 Tuple。这一节再学两种容器类型——

  • dict(字典):key → value 映射,按 key 极速查找
  • set(集合):无序、不重复元素的集合,最适合「去重」和「成员判断」

学完这两种,再加上前面的 list 和 tuple,Python 最常用的数据结构就齐了。

教学 02 / 08

一、字典(Dictionary)

1、什么是 dict(字典)

上一章节,我们学习了列表(List)和元组(tuple)来表示有序集合。

而我们在讲列表时,用 list 来存储用户的姓名:

python
name = ['一点水', '两点水', '三点水', '四点水', '五点水']

那么如果我们为了方便联系这些童鞋,要把电话号码也添加进去,该怎么做呢?

用 list 可以这样子解决:

python
name = [['一点水', '131456780001'], ['两点水', '131456780002'], ...]

但是这样很不方便。如果用列表来存储这些,列表越长,我们查找起来耗时就越长。

这时候就可以用 dict(字典)来表示了。Python 内置了字典(dict),全称 dictionary,使用键-值(key-value) 存储,具有极快的查找速度(如果学过 Java,dict 就相当于 Java 中的 Map)。

python
name = {'一点水': '131456780001', '两点水': '131456780002', '三点水': '131456780003'}

2、dict(字典)的创建

字典是另一种可变容器,且可存储任意类型对象。

字典的每个键值(key: value)对用冒号 : 分割,每个对之间用逗号 , 分割,整个字典包括在花括号 {} 中:

python
d = {key1: value1, key2: value2}

注意:键必须是唯一的(重复会以最后一个为准),值可以重复。键必须是不可变类型(数字、字符串、tuple 都行,list 不行)。

python
dict1 = {'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333'}
dict2 = {'abc': 1234, 1234: 'abc'}
print(dict1)
print(dict2)
练习 1 / 7·创建一个 dict题目有问题?

请创建一个字典 phone_book,存这三对联系人:

  • 'Alice' → '13800001111'
  • 'Bob' → '13800002222'
  • 'Carol' → '13800003333'

然后 print(phone_book)。

输出应该是:

{'Alice': '13800001111', 'Bob': '13800002222', 'Carol': '13800003333'}
main.py
可编辑
🔒做对当前题解锁下一段 ·0/7
本章目录

Dict 与 Set

  1. 教学 01第三节:Dict 与 Set
  2. 教学 02一、字典(Dictionary)
  3. 练习 1创建一个 dict
  4. 教学 033、访问 dict(字典)
  5. 练习 2 🔒按 key 取值
  6. 教学 044、修改 dict(字典)
  7. 练习 3 🔒新增 + 修改
  8. 教学 057、Python 3.9+ 的 dict 合并运算符 `|`
  9. 练习 4 🔒用 | 合并两个 dict
  10. 教学 07二、set(集合)
  11. 练习 5 🔒用 set 去重
  12. 教学 062、set 添加元素
  13. 练习 6 🔒set 的 add
  14. 教学 084、set 的集合运算
  15. 练习 7 🔒求交集
← 上一章03 · List 与 Tuple
Dict 与 Set
下一章 →05 · 条件与循环