2026-08-22 00:33:13
在Python中,遍历字典的键和值有多种方法,其中最推荐使用dict.items(),因其可读性强、效率高且内存友好。以下是具体技巧和注意事项:
1. 推荐方法:使用dict.items()遍历键值对可读性高:直接表明同时处理键和值,代码意图清晰。
效率高:避免每次迭代时的哈希查找操作,直接提供键值对。
内存友好:返回视图对象,惰性求值,不复制完整数据。
直接修改会报错:迭代过程中修改字典(如删除/添加键值对)会触发RuntimeError,因字典大小变化导致迭代器失效。
my_dict = {'a': 1, 'b': 2}# 错误示例:直接删除会报错# for key in my_dict:# if my_dict[key] % 2 == 0:# del my_dict[key]安全修改方法:
方法1:迭代副本通过list(my_dict.keys())或list(my_dict.items())创建独立列表,避免影响原字典。my_dict = {'a': 1, 'b': 2, 'c': 3}keys_to_delete = []for key in list(my_dict.keys()): # 迭代键的副本 if my_dict[key] % 2 == 0: keys_to_delete.append(key)for key in keys_to_delete: del my_dict[key]
方法2:字典推导式通过过滤条件创建新字典,避免直接修改原字典。original_dict = {'a': 1, 'b': 2, 'c': 3}new_dict = {k: v for k, v in original_dict.items() if v % 2 != 0}
方法3:仅修改值(安全)若仅修改现有键对应的值,不会改变字典结构,通常安全。my_dict = {'a': 1, 'b': 2}for key, value in my_dict.items(): my_dict[key] = value * 2 # 仅修改值,不改变字典大小
通过合理选择方法,可以写出高效、清晰且可靠的Python字典遍历代码。