Python中对含相似标识的字典键对应Decimal值求和
按标识对字典值求和的解决方案
问题说明
给定字典:
from decimal import Decimal values={'P-ETH-900':Decimal(122),'P-ETH-700':Decimal(455),'P-BTC-900':Decimal(12),'P-BTC-700':Decimal(55)}
需要将键中包含相同标识(如ETH、BTC)的条目对应的Decimal值求和,最终输出格式为{'ETH':'577','BTC':'67'}。
通用实现代码
不用单独针对每个标识写判断逻辑,用通用方法处理:
from decimal import Decimal values = {'P-ETH-900': Decimal(122), 'P-ETH-700': Decimal(455), 'P-BTC-900': Decimal(12), 'P-BTC-700': Decimal(55)} sum_result = {} for key, val in values.items(): # 从键中提取标识部分(拆分'-'后取第二个元素) symbol = key.split('-')[1] # 初始化或累加对应标识的数值 if symbol not in sum_result: sum_result[symbol] = Decimal(0) sum_result[symbol] += val # 转换为期望的字符串值格式 final_output = {k: str(v) for k, v in sum_result.items()} print(final_output)
输出结果
运行代码后会得到:
{'ETH': '577', 'BTC': '67'}
这个方法的优势是扩展性强,后续新增其他标识(如SOL、ADA等)的条目时,无需修改代码逻辑就能自动完成求和。
内容的提问来源于stack exchange,提问作者Madan
相关产品推荐
相关产品推荐

