You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

合并数组中匹配name和surname的字典并对netWorth、salary求和

方法1:使用pandas库(推荐,代码最简)

你可以直接用pandas库实现这类结构化数据的分组聚合需求,不用自己手写遍历判断逻辑,实现代码如下:

import pandas as pd

d = [
    {"name": "John", "surname": "Budd", "netWorth": "100000", "salary": "4700", "comment": "Cool"},
    {"name": "Tedd", "surname": "Walker", "netWorth": "400000", "salary": "8000", "comment": "Nice"},
    {"name": "John", "surname": "Budd", "netWorth": "300000", "salary": "5000", "comment": "Pretty"}
]

# 转为DataFrame格式
df = pd.DataFrame(d)
# 把要累加的字段转为数值类型
df[['netWorth', 'salary']] = df[['netWorth', 'salary']].astype(int)
# 按姓名+姓氏分组求和,自动丢弃不参与计算的comment字段
result_df = df.groupby(['name', 'surname'], as_index=False)[['netWorth', 'salary']].sum()
# 把数值转回字符串格式,匹配你要求的输出
result_df[['netWorth', 'salary']] = result_df[['netWorth', 'salary']].astype(str)
result = result_df.to_dict('records')
print(result)

运行后得到的result就和你给出的预期结果完全一致。


方法2:原生Python实现(无需安装第三方库)

如果你不想引入额外依赖,可以直接用字典做分组实现:

d = [
    {"name": "John", "surname": "Budd", "netWorth": "100000", "salary": "4700", "comment": "Cool"},
    {"name": "Tedd", "surname": "Walker", "netWorth": "400000", "salary": "8000", "comment": "Nice"},
    {"name": "John", "surname": "Budd", "netWorth": "300000", "salary": "5000", "comment": "Pretty"}
]

group_map = {}
for item in d:
    # 用name+surname元组作为分组唯一键
    key = (item['name'], item['surname'])
    if key not in group_map:
        group_map[key] = {
            'name': item['name'],
            'surname': item['surname'],
            'netWorth': int(item['netWorth']),
            'salary': int(item['salary'])
        }
    else:
        group_map[key]['netWorth'] += int(item['netWorth'])
        group_map[key]['salary'] += int(item['salary'])

# 转回列表格式,数值转字符串匹配预期输出
result = []
for v in group_map.values():
    v['netWorth'] = str(v['netWorth'])
    v['salary'] = str(v['salary'])
    result.append(v)
print(result)

内容的提问来源于stack exchange,提问作者user15923317

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:15:04