Python:对相同键值求和并存入新字典的方法及语法错误排查
字典键值求和代码语法错误排查与修正
问题背景
从.txt文件中获取的原始字典如下:
dictOne = { "AAA": 0, "BBB": 1, "AAA": 3, "BBB": 1, }
需要生成新字典dictTwo,将相同键对应的值求和,预期结果:
dictTwo = { "AAA": 3, "BBB": 2, }
错误代码与问题分析
你编写的代码触发SyntaxError: invalid syntax,问题出在这一行:
dictTwo [k] = v += v
Python不支持这种连续赋值的写法,且逻辑本身也不符合需求——这行代码试图同时完成自增和赋值,既违反语法规范,也没实现“已存在的键累加值、不存在的键初始化值”的核心逻辑。
修正后的代码
基础循环实现
import json # 假设text是从txt文件读取的字符串内容 dictOne = json.loads(text) dictTwo = {} for k, v in dictOne.items(): if k in dictTwo: dictTwo[k] += v else: dictTwo[k] = v
更简洁的实现(使用collections.defaultdict)
import json from collections import defaultdict dictOne = json.loads(text) dictTwo = defaultdict(int) for k, v in dictOne.items(): dictTwo[k] += v # 若需要转为普通字典,可执行: # dictTwo = dict(dictTwo)
内容的提问来源于stack exchange,提问作者simonica
相关产品推荐
相关产品推荐

