按照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为输入数组的长度。

相关内容

热门资讯

教学盘点!微信小程序微乐辅助器... 教学盘点!微信小程序微乐辅助器破解版,wepoker能不能透视,靠谱教程(发现有挂);微信小程序微乐...
总算了解!闲逸斗地主辅助,德普... 总算了解!闲逸斗地主辅助,德普之星私人局辅助免费,教你攻略(有挂辅助);德普之星私人局辅助免费下载原...
一分钟了解!哈狗智能辅助,hh... 一分钟了解!哈狗智能辅助,hhpoker真的有透视吗,必赢教程(有挂规律);哈狗智能辅助软件透明挂更...
重大通报!多乐跑得快辅助器,h... 重大通报!多乐跑得快辅助器,hhpoker是真的吗,系统教程(有挂详细);多乐跑得快辅助器最新软件透...
发现一款!川娱竞技血战辅助器,... 《发现一款!川娱竞技血战辅助器,约局吧德州透视,介绍教程(有挂猫腻)》 川娱竞技血战辅助器软件透明挂...
实测揭晓!好友赣南新版本脚本,... 实测揭晓!好友赣南新版本脚本,德普之星透视辅助软件激活码,插件教程(真的有挂);小薇(透视辅助)致您...
玩家爆料!川南九九辅助,德州局... 玩家爆料!川南九九辅助,德州局hhpoker,爆料教程(有挂细节);川南九九辅助是一项川南九九辅助软...
分享一款!微乐春天扑克开挂辅助... 分享一款!微乐春天扑克开挂辅助插件,wepoker透视有吗,可靠教程(有挂功能)是一款可以让一直输的...
推荐十款!盛世2私人辅助,we... 推荐十款!盛世2私人辅助,wepoker俱乐部辅助器,AI教程(有挂助手);小薇(透视辅助)致您一封...
六分钟了解!上饶打炸辅助,We... 六分钟了解!上饶打炸辅助,WePoKer辅助器,细节揭秘(揭秘有挂);1、不需要AI权限,帮助你快速...