字典(dict)是Python中最常用、最重要的数据结构之一,相当于「键值对映射表」,就像我们用的字典:键(key)是单词,值(value)是释义,通过单词快速找释义,查询速度超快!
不管是爬虫、数据分析、后端开发还是日常写脚本,字典方法都能大幅提升效率。今天整理了12个高频必用方法,配超详细实战案例,新手一看就懂、一学就会!
一、先认识Python字典
字典是无序、可变、键唯一的集合,基础格式:
# 空字典
dict1 = {}
# 带数据的字典
student = {"name": "小明", "age": 18, "gender": "男"}
- key(键):必须是不可变类型(字符串、数字、元组),不能重复
二、12个字典常用方法+实战案例
1. 访问字典:dict[key] / get()
最基础的取值操作,两种方式区别很大!
student = {"name": "小明", "age": 18}
# 方法1:直接用键取值(键不存在会报错)
print(student["name"]) # 输出:小明
# 方法2:get() 方法(键不存在返回None,不报错)
print(student.get("age")) # 输出:18
print(student.get("score", "未录入分数")) # 键不存在,返回默认值
✅ 适用场景:不确定键是否存在时,优先用get(),避免程序崩溃。
2. 修改字典:dict[key] = 新值
修改已有键的值,直接赋值即可:
student = {"name": "小明", "age": 18}
student["age"] = 19# 修改年龄
print(student) # 输出:{'name': '小明', 'age': 19}
3. 添加键值对:dict[key] = 新值 / update()
两种添加方式,批量添加用update()更方便:
student = {"name": "小明", "age": 18}
# 方法1:单个添加
student["score"] = 95
print(student) # {'name': '小明', 'age': 18, 'score': 95}
# 方法2:update() 批量添加/修改
student.update({"gender": "男", "class": "高一1班"})
print(student) # 新增gender、class键值对
4. 删除键值对:del / pop() / popitem() / clear()
4种删除方法,适用场景不同:
student = {"name": "小明", "age": 18, "score": 95}
# 1. del:删除指定键值对(键不存在报错)
del student["age"]
print(student) # {'name': '小明', 'score': 95}
# 2. pop():删除指定键,并返回对应的值
score = student.pop("score")
print(score) # 输出:95
print(student) # {'name': '小明'}
# 3. popitem():删除最后添加的键值对(Python3.7+)
student = {"name": "小明", "age": 18}
student.popitem()
print(student) # {'name': '小明'}
# 4. clear():清空整个字典
student.clear()
print(student) # 输出:{}
✅ 记忆口诀:删指定用del,删完要值用pop,删最后用popitem,清空用clear。
5. 获取所有键:keys()
快速提取字典中所有的键(key):
student = {"name": "小明", "age": 18, "score": 95}
keys = student.keys()
print(keys) # 输出:dict_keys(['name', 'age', 'score'])
# 转列表使用
print(list(keys)) # ['name', 'age', 'score']
6. 获取所有值:values()
快速提取字典中所有的值(value):
student = {"name": "小明", "age": 18, "score": 95}
values = student.values()
print(list(values)) # ['小明', 18, 95]
7. 获取所有键值对:items()
最常用方法!遍历字典必备,一次性拿到键和值:
student = {"name": "小明", "age": 18, "score": 95}
# 遍历键值对
for key, value in student.items():
print(f"键:{key},值:{value}")
输出结果:
键:name,值:小明
键:age,值:18
键:score,值:95
8. 复制字典:copy()
避免直接赋值导致的原字典被修改,必须用copy():
# 错误示范:直接赋值,两个字典指向同一个数据
student1 = {"name": "小明"}
student2 = student1
student2["age"] = 18
print(student1) # 原字典被修改:{'name': '小明', 'age': 18}
# 正确示范:copy() 浅拷贝,独立数据
student1 = {"name": "小明"}
student2 = student1.copy()
student2["age"] = 18
print(student1) # 原字典不变:{'name': '小明'}
9. 字典长度:len()
统计字典中有多少组键值对:
student = {"name": "小明", "age": 18, "score": 95}
print(len(student)) # 输出:3
10. 判断键是否存在:in
检查字典中是否包含某个键,返回True/False:
student = {"name": "小明", "age": 18}
print("name"in student) # 输出:True
print("score"in student) # 输出:False
11. 设置默认值:setdefault()
键存在则返回原值,不存在则添加默认键值对:
student = {"name": "小明"}
# 键存在,返回原值
print(student.setdefault("name", "小红")) # 小明
# 键不存在,添加键值对
print(student.setdefault("age", 18)) # 18
print(student) # {'name': '小明', 'age': 18}
12. 快速创建字典:fromkeys()
用指定键创建新字典,统一设置初始值:
# 给3个键设置默认值0
keys = ["name", "age", "score"]
student = dict.fromkeys(keys, 0)
print(student) # {'name': 0, 'age': 0, 'score': 0}
三、综合实战:学生信息管理
把所有方法串起来,写一个完整的小案例,新手直接练:
# 1. 创建字典
student = {}
print("初始空字典:", student)
# 2. 批量添加信息
student.update({"name": "小红", "age": 17, "subject": "数学"})
print("添加后:", student)
# 3. 修改年龄
student["age"] = 18
# 4. 添加分数,不存在则默认80
student.setdefault("score", 80)
# 5. 遍历所有信息
print("\n学生完整信息:")
for k, v in student.items():
print(f"{k}:{v}")
# 6. 删除科目
student.pop("subject")
# 7. 统计信息数量
print(f"\n剩余信息条数:{len(student)}")
# 8. 清空字典
student.clear()
print("清空后:", student)
四、新手必记3个核心要点
- 遍历首选:
items()是遍历字典最方便的方法,没有之一
五、方法速查表
| |
|---|
dict[key] | |
update() | |
del | |
keys() | |
values() | |
items() | |
copy() | |
len() | |
总结
- 本文覆盖12个Python字典高频方法,全是工作/学习必用款;
- 字典是Python核心工具,吃透这些方法,能搞定80%的键值对处理场景!