Python3 如何遍历数组对相同service_general_id的qty值求和
实现逻辑与代码
核心思路是利用字典key的唯一性做分组累加,最后转换为目标格式的列表即可。
方法1:原生Python实现(无额外依赖)
# 你的原始数据集 data_set = [{'service_general_id': 46, 'service_general_qty': 1000.0}, {'service_general_id': 46, 'service_general_qty': 56000.0}, {'service_general_id': 44, 'service_general_qty': 56000.0}] # 临时存储每个id对应的求和结果 sum_map = {} for item in data_set: current_id = item['service_general_id'] current_qty = item['service_general_qty'] if current_id in sum_map: sum_map[current_id] += current_qty else: sum_map[current_id] = current_qty # 转换为目标格式 data_result = [{'service_general_id': k, 'service_general_qty': v} for k, v in sum_map.items()]
Python 3.7及以上版本会自动保留id第一次出现的顺序,输出结果和你预期的完全一致。
方法2:使用defaultdict简化判空逻辑
如果你不介意引入标准库的collections模块,可以简化判断key是否存在的逻辑:
from collections import defaultdict data_set = [{'service_general_id': 46, 'service_general_qty': 1000.0}, {'service_general_id': 46, 'service_general_qty': 56000.0}, {'service_general_id': 44, 'service_general_qty': 56000.0}] sum_map = defaultdict(float) for item in data_set: sum_map[item['service_general_id']] += item['service_general_qty'] data_result = [{'service_general_id': k, 'service_general_qty': v} for k, v in sum_map.items()]
如果你使用的原变量名是provisiones_originales_dict,只需要把遍历对象data_set替换为该变量即可。
内容的提问来源于stack exchange,提问作者wecbxxx
相关产品推荐
相关产品推荐

