上一期我们掌握了字典的增删改查操作,学会了如何添加、修改、删除键值对;今天继续解锁Python字典核心用法——字典遍历。字典遍历是数据处理的“核心技能”,专门用于批量获取、处理字典中的键值对,是实战中处理用户信息、商品数据、配置参数等场景的必备操作,日常编程中出场率极高。
无论是批量打印字典内容、筛选符合条件的键值对,还是统计数据、修改对应值,都离不开字典遍历。它的用法简洁易懂,核心只有3种常用方式,结合实战案例练习,就能快速掌握,轻松实现字典数据的高效处理,让代码更简洁、更高效。
📌 什么是字典遍历?
字典遍历,本质是逐一遍历字典中的键值对,获取字典中的键、值,或同时获取键和对应的值,进而对这些数据进行批量操作的过程。与列表、元组的索引遍历不同,字典遍历无需依赖索引,核心围绕“键值对”展开。
简单来说,字典遍历就像逐一查看一本“字典”,要么只看所有的“词条”(键),要么只看所有的“释义”(值),要么同时查看“词条和释义”(键值对),根据实际需求选择对应方式即可。
核心说明:字典遍历通常与for循环搭配使用,结合字典内置方法,可灵活实现不同场景的遍历需求,是连接字典基础操作与实战应用的关键环节。
🔧 常用字典遍历方式
Python中字典遍历的常用方式只有3种,覆盖所有实战场景,每种方式都有明确的适用场景和语法规则,结合实例理解,就能快速上手,避免踩坑。
1. 遍历字典的所有键(keys()方法)
语法:for 键 in 字典名.keys():,核心作用是“只获取所有键”——遍历后仅得到字典中的所有键,适合只需处理键的场景(如判断某个键是否存在、批量获取键名)。
补充:keys()方法返回的是“键的视图对象”,可通过list()转换为列表,方便后续对键进行排序、切片等操作。
# 结合实战场景使用(定义一个常用字典)user_info = {"name": "小明", "age": 20, "hobby": "Python", "height": 175}# 遍历所有键for key in user_info.keys(): print("字典的键:", key)# 补充:转换为列表,方便后续操作key_list = list(user_info.keys())print("所有键组成的列表:", key_list)# 实战场景:判断某个键是否存在if "hobby" in user_info.keys(): print("存在hobby键,对应的值是:", user_info["hobby"])
2. 遍历字典的所有值(values()方法)
语法:for 值 in 字典名.values():,核心作用是“只获取所有值”——遍历后仅得到字典中的所有值,适合只需处理值的场景(如统计值的总和、筛选符合条件的值)。
补充:values()方法同样返回“值的视图对象”,可通过list()转换为列表,便于批量处理值。
# 沿用上面的user_info字典# 遍历所有值for value in user_info.values(): print("字典的值:", value)# 补充:转换为列表value_list = list(user_info.values())print("所有值组成的列表:", value_list)# 实战场景:统计所有数字类型值的总和total = 0for value in user_info.values(): if isinstance(value, int): # 判断值是否为整数 total += valueprint("年龄+身高的总和:", total)
3. 同时遍历键和值(items()方法,实战最高频)
语法:for 键, 值 in 字典名.items():,核心作用是“同时获取键和对应的值”——遍历后可同时操作键和值,是实战中最常用的遍历方式,覆盖80%以上的字典处理场景。
补充:items()方法返回“键值对元组的视图对象”,每一个元组包含一个键和对应的一个值,遍历后可直接拆分使用。
# 沿用上面的user_info字典# 同时遍历键和值(最常用)for key, value in user_info.items(): print(f"{key}:{value}")# 实战场景1:批量修改值(给所有数字类型的值加1)for key, value in user_info.items(): if isinstance(value, int): user_info[key] = value + 1print("修改后的字典:", user_info)# 实战场景2:筛选符合条件的键值对(筛选值为字符串类型的键值对)str_kv = {}for key, value in user_info.items(): if isinstance(value, str): str_kv[key] = valueprint("值为字符串的键值对:", str_kv)
✅ 字典遍历的核心特性
遍历顺序(Python3.7+):字典会保留键值对的定义顺序,遍历结果与定义时的顺序一致;低于3.7版本不保证顺序,无需刻意纠结。
视图对象特性:keys()、values()、items()返回的是视图对象,不占用额外内存,且会随原字典的修改而自动更新,效率更高。
不可直接修改结构:遍历字典时,直接新增、删除键值对会导致遍历异常,需先记录要修改的内容,遍历结束后再操作。
可结合其他操作:可与if判断、循环嵌套、函数调用等结合,实现复杂的数据处理需求(如多条件筛选、批量赋值)。
# 特性示例# 视图对象自动更新user_info = {"name": "小明", "age": 20}keys = user_info.keys()user_info["hobby"] = "Python" # 修改原字典print(list(keys)) # 视图对象自动更新,输出:['name', 'age', 'hobby']# 遍历中不可直接修改结构(错误示例)# for key in user_info.keys():# del user_info[key] # 报错:遍历过程中修改字典大小# 正确做法:先记录要删除的键,遍历结束后删除del_keys = []for key in user_info.keys(): if key == "age": del_keys.append(key)for key in del_keys: del user_info[key]print(user_info) # 输出:{'name': '小明', 'hobby': 'Python'}
❌ 必避的4个字典遍历坑
字典遍历看似简单,但在视图对象使用、遍历中修改字典、非布尔值判断等场景,容易出现逻辑偏差或报错,这4个坑一定要避开,确保代码逻辑正确。
坑1:用索引遍历字典:误以为字典和列表一样用for i in range(len(字典))遍历,会直接报错(字典没有索引),需用对应内置方法遍历。
坑2:遍历中直接修改字典结构:遍历字典时,直接新增、删除键值对,会导致“遍历异常”,需先记录修改内容,后续统一操作。
坑3:混淆视图对象与列表:误以为keys()、values()返回的是列表,直接用列表方法(如切片)操作,需先通过list()转换。
坑4:多条件遍历缺少判断:遍历筛选时,未判断值的类型,导致对非目标类型的值进行操作(如对字符串进行数值运算),出现报错。
# 避坑示例(必看)# 坑1:用索引遍历(错误)user_info = {"name": "小明", "age": 20}# for i in range(len(user_info)):# print(user_info[i]) # 报错:字典无索引# 正确做法:用内置方法遍历for key in user_info.keys(): print(user_info[key])# 坑2:遍历中修改结构(错误)# for key in user_info.keys():# user_info["height"] = 175 # 报错:遍历中修改字典大小# 正确做法:遍历结束后修改user_info = {"name": "小明", "age": 20}new_key = "height"new_value = 175for key in user_info.keys(): pass # 遍历操作user_info[new_key] = new_valueprint(user_info)# 坑3:混淆视图对象与列表(错误)keys = user_info.keys()# print(keys[0]) # 报错:视图对象不可切片# 正确做法:转换为列表keys_list = list(keys)print(keys_list[0]) # 输出:name# 坑4:缺少类型判断(错误)total = 0for value in user_info.values(): # total += value # 报错:字符串无法与整数相加 if isinstance(value, int): total += valueprint(total) # 输出:20(正确)
📝 核心总结(快速掌握)
字典遍历:核心是逐一遍历键值对,常用3种方式,分别是keys()(遍历键)、values()(遍历值)、items()(遍历键值对);
核心特点:Python3.7+保留遍历顺序,视图对象高效省内存,遍历中不可直接修改字典结构,可结合多操作实现复杂需求;
关键细节:items()方法是实战最高频,视图对象需转列表才能用切片,遍历中修改字典需先记录再操作;
实战用途:批量处理字典数据、筛选键值对、统计数据、批量修改值,是字典实战应用的核心技能,后续学习数据处理会频繁用到。
字典遍历是Python数据处理的“基础工具”,掌握它之后,就能轻松应对各类字典批量操作场景,摆脱逐一操作键值对的繁琐。它与字典的增删改查操作相辅相成,多结合实例练习,就能熟练运用,避免踩坑。
✨ 小任务:定义一个包含商品名称、价格、库存的字典,用3种遍历方式分别获取商品的键、值、键值对,再筛选出价格大于50的商品,熟悉字典遍历的用法。
每一个基础知识点的积累,都是解锁复杂编程的关键,循序渐进,就能轻松掌控Python字典的使用,写出更高效、更规范的代码。