📖 知识点
1. 两种取值方式
方式①:字典[key]
- 键存在:返回对应 value
- 键不存在:直接抛出
KeyError程序崩溃
stu = {"name":"阿凯", "level":3}
print(stu["name"])方式②:字典.get(key, 默认值) ✅推荐安全写法
- 键存在:返回对应 value
- 键不存在:不会报错,返回 None;你也可以自定义默认值
stu = {"name":"阿凯", "level":3}
print(stu.get("name"))
print(stu.get("score", 0)) # 没有score,返回默认值02. 修改 / 新增键值对
语法:字典[key] = 值
- 如果 key已经存在 → 修改原来的值
- 如果 key不存在 → 新增一组键值对
stu = {"name":"阿凯", "level":3}
stu["level"] = 4 # key存在,修改
stu["skill"] = "循环" # key不存在,新增
print(stu)
# {'name': '阿凯', 'level': 4, 'skill': '循环'}3. 删除字典键值对 del
del 字典[key]:删除指定键值对,键不存在会报错
del stu["skill"]
print(stu)⚠️ 避坑提醒
get()不会修改原字典,只是读取数据- 字典 key 不能是列表这类可变类型
- 重复赋值同一个 key,旧数据会被直接覆盖丢失
⚔️ Kata 实战任务
任务:学员修炼档案更新 需求:
- 创建初始字典
stu = {"name":"阿凯", "level":3, "skill":"列表"} - 打印原始字典
- 使用
get()获取 name 的值并打印;用 get 获取 score,不存在则默认返回 0 - 修改 level 为 4
- 新增键值对
score: 88 - 删除
skill键 - 打印最终更新后的字典
预期输出示例:
原始学员档案: {'name': '阿凯', 'level': 3, 'skill': '列表'}
学员姓名: 阿凯
学员分数: 0
更新后的学员档案: {'name': '阿凯', 'level': 4, 'score': 88}✅ 参考代码
# 创建初始字典
stu = {"name": "阿凯", "level": 3, "skill": "列表"}
print("原始学员档案:", stu)
# get安全取值
name = stu.get("name")
score = stu.get("score", 0)
print("学员姓名:", name)
print("学员分数:", score)
# 修改已有key
stu["level"] = 4
# 新增key
stu["score"] = 88
# 删除键值对
del stu["skill"]
print("更新后的学员档案:", stu)🧠 思考题
stu.get("score",0)拿到默认值 0,会不会自动把"score":0写入字典?- 什么时候优先使用
get(),什么时候直接stu[key]取值?
行者孙Python