2020-09-14 06:42:38
在Python中,要迭代并修改字典的值,需通过items()方法结合键操作实现,直接修改迭代中的value变量无效。以下是具体方法与注意事项:
核心方法:使用items()迭代并更新值基本迭代:items()返回字典键值对的视图对象,可通过for key, value in dict.items()遍历:
my_dict = {'a': 10, 'b': 20, 'c': 30}for key, value in my_dict.items(): print(f"Key: {key}, Value: {value}")输出:
Key: a, Value: 10Key: b, Value: 20Key: c, Value: 30根据条件修改值:通过键直接更新字典值,而非修改value变量:
my_dict = {'a': 10, 'b': 20, 'c': 30}for key, value in my_dict.items(): if value < 25: my_dict[key] = value * 2 # 关键:通过键更新print(my_dict) # 输出: {'a': 20, 'b': 40, 'c': 30}禁止直接修改value变量:以下操作无效,原字典不会改变:
for key, value in my_dict.items(): value *= 2 # 错误!仅修改局部变量value避免迭代时增删键:在迭代过程中添加或删除键会触发RuntimeError: dictionary changed size during iteration。正确做法:先收集需操作的键,迭代结束后统一处理。示例(删除值小于25的键):
my_dict = {'a': 10, 'b': 20, 'c': 30}to_delete = [key for key, value in my_dict.items() if value < 25]for key in to_delete: del my_dict[key]print(my_dict) # 输出: {'c': 30}理解视图对象的动态性:items()返回的视图会实时反映字典变化(如值修改),但增删键会破坏迭代稳定性。
掌握这些方法可高效、安全地操作字典数据。