20 分钟
Python 入门

字典

掌握字典的键值对存储和常用操作

  • 创建字典
  • 按键存取数据
  • 字典常用方法和遍历

创建字典

字典用花括号 {},存储 键:值 对。通过键快速查找值:

示例代码(可运行)

增删改查

示例代码(可运行)

安全取值 get()

示例代码(可运行)
💡用 get() 避免报错

不确定键是否存在时,用 d.get(key, 默认值),不要用 d[key]。

🐍资深工程师经验谈

选对数据结构,代码就成功了一半。经验法则:需要顺序存储用 list,需要唯一值用 set,需要键值对用 dict,需要不可变序列用 tuple。字典的查找速度是 O(1),列表查找是 O(n)——当数据量大时,这个差异是天壤之别。写 for item in big_list: if item.id == target: 这种代码,就应该考虑换成字典。Python 3.7+ 字典保持插入顺序,但不要依赖这个特性做排序——用 OrderedDict 或 sorted()。

遍历字典

示例代码(可运行)
预测输出
d = {"a": 1, "b": 2}
print(d.get("c", 0))
print("a" in d)
找 Bug直接用 [] 访问不存在的键会报 KeyError。用 get() 方法就行。
scores = {"小明": 90} print(scores["小红"])
填空题填写空白处的代码
d = {"a": 1} print(d.("b", 0)) # 安全取值
选择题

{"a":1}["b"] 会怎样?

选择题

想判断字典 d 里是否存在键 name,正确写法是?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

print 把对象交给 sys.stdout 写出,显示时默认调用对象的 __str__;在交互环境直接回显变量走的是 __repr__(更偏「给开发者看的表示」)。sep 改分隔符、end 改结尾、file 可重定向到文件。面试常追问:生产环境为什么用 logging 而不是 print?因为日志有级别、能落盘、可结构化、可统一关闭,print 只适合临时调试。

挑战任务

成绩字典

简单+50 XP

创建3个同学成绩字典,遍历输出每人名字和成绩。

成绩字典
2 个测试用例

课后作业

电话簿

中等+20 XP

创建电话簿字典,按姓名查电话。

电话簿
1 个测试用例