Python如何基于当前值批量修改同一字典内的多个值
Python字典批量修改值方案
可以通过带if-elif分支的for循环实现需求,无需生成新字典,直接原地修改原字典内容即可。
你之前的写法存在两个问题:
- 仅遍历字典的
values(),只能拿到值无法获取对应的键,无法定位修改原字典的条目 - 条件判断中误用了赋值运算符
=,Python判断相等需要用==,否则会触发语法错误
基础实现(if-elif分支版本)
直接遍历字典的items()同时获取键和值,匹配到对应分类后直接修改原字典的键值:
for key, value in objects.items(): if value == "colour": objects[key] = 1 elif value == "food": objects[key] = 2 elif value == "object": objects[key] = 3
优化实现(映射字典版本,适合分类较多的场景)
如果后续需要新增分类映射,建议提前定义分类和目标值的映射字典,不需要堆叠大量if-elif分支,维护成本更低:
# 分类映射表,新增分类只需修改该字典即可 category_mapping = { "colour": 1, "food": 2, "object": 3 } for key, value in objects.items(): if value in category_mapping: objects[key] = category_mapping[value]
内容的提问来源于stack exchange,提问作者e007q
相关产品推荐
相关产品推荐

