按照id合并数组并对金额求和
创始人
2024-08-24 06:00:49
0

以下是一个按照id合并数组并对金额求和的解决方法的示例代码:

from collections import defaultdict

def merge_and_sum(arr):
    # 使用defaultdict创建一个以id为键,金额列表为值的字典
    merged_dict = defaultdict(list)
    
    # 遍历输入数组,将相同id的金额进行合并
    for item in arr:
        merged_dict[item['id']].append(item['amount'])
    
    merged_arr = []
    
    # 遍历合并后的字典,对每个id的金额求和并创建新的数组
    for id, amounts in merged_dict.items():
        merged_arr.append({'id': id, 'amount': sum(amounts)})
    
    return merged_arr

# 示例输入数组
arr = [{'id': 1, 'amount': 100},
       {'id': 2, 'amount': 200},
       {'id': 1, 'amount': 300},
       {'id': 3, 'amount': 400},
       {'id': 2, 'amount': 500}]

merged_arr = merge_and_sum(arr)
print(merged_arr)

输出结果:

[{'id': 1, 'amount': 400}, {'id': 2, 'amount': 700}, {'id': 3, 'amount': 400}]

在这个示例中,我们首先使用defaultdict创建了一个以id为键,金额列表为值的字典。然后,我们遍历输入数组,将相同id的金额添加到对应的值列表中。接下来,我们遍历合并后的字典,对每个id的金额列表进行求和,并创建新的数组。最后,返回合并后的数组。

这个方法的时间复杂度为O(n),其中n为输入数组的长度。

相关内容

热门资讯

窍要开挂"菠萝德普辅... 菠萝德普辅助器免费版在哪里 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大...
透视免费!友间联盟辅助,新世界... 友间联盟辅助 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: 1、软...
原本有开挂"情怀国粹... 原本有开挂"情怀国粹辅助"详细开挂辅助平台有挂猫腻(技巧教程) >>您好:软件加薇136704302...
固有有辅助"中至吉安... 固有有辅助"中至吉安黑科技"开挂(透视)辅助安装(玩家教程有挂辅助) 【无需打开直接搜索加薇1367...
阶段开挂"人海大厅脚... 阶段开挂"人海大厅脚本"开挂(软件)辅助软件(有挂分享);无需打开直接搜索加薇136704302(咨...
透视实锤!闲逸碰胡辅助软件下载... 大家好,今天小编来为大家解答微乐自建房脚本免费下载苹果版这个问题咨询软件客服可以免费测试直接加微信(...
本来有开挂"小闲川南... 本来有开挂"小闲川南辅助工具"详细开挂辅助平台有挂实锤(微扑克教程) 了解更多开挂安装加(13670...
固有有开挂"丽水双扣... 丽水双扣茶苑脚本是一款专注玩家量身打造的游戏记牌类型软件,在丽水双扣茶苑脚本这款游戏中我们可以记录下...
方式开挂"微乐小程序... 【亲,微乐小程序透视工具 这款游戏可以开挂的,确实是有挂的,很多玩家在这款微乐小程序透视工具中打牌都...
透视安装!福建兄弟十三冰修改器... 透视安装!福建兄弟十三冰修改器,微信微乐辅助ios(透视)开挂辅助工具揭秘教程;无需打开直接搜索加薇...