如何在Python中遍历字典并根据条件修改其值?
解决Python字典遍历修改值的问题
你原来的代码没生效,是因为遍历my_dict.items()时,value只是原字典对应值的副本,修改这个变量不会同步到原字典里。下面给两种可行的解决方法:
方法一:通过键直接修改原字典
遍历过程中拿到键,直接通过键对原字典赋值,这样就能修改真正存储在字典里的值:
my_dict = {'a': 10, 'b': 20, 'c': 30} for key, value in my_dict.items(): if value < 25: my_dict[key] = value * 2 # 用key定位原字典的位置修改值 print(my_dict) # 输出: {'a': 20, 'b': 40, 'c': 30}
方法二:用字典推导式(Python 3.9+推荐)
如果你的修改逻辑比较简单,用字典推导式可以一行完成,代码更简洁:
my_dict = {'a': 10, 'b': 20, 'c': 30} my_dict = {k: v * 2 if v < 25 else v for k, v in my_dict.items()} print(my_dict) # 输出: {'a': 20, 'b': 40, 'c': 30}
两种方法各有适用场景:第一种适合遍历过程中需要执行额外复杂逻辑的情况;第二种更适合逻辑简单的场景,可读性和效率都不错。
内容的提问来源于stack exchange,提问作者Sandesh Raj Yadav
相关产品推荐
相关产品推荐

