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

Python合并3个含重复键字典并按公司字段分组输出的实现方法

Python字典按公司分组聚合实现

不需要引入第三方依赖,Python原生语法即可完成需求,以下是可直接运行的代码:

# 原始字典数据
NewDict1 =  {'Name': 'John,Davies', 'Company': 'Google'}
NewDict2 =  {'Name': 'Boris,Barry', 'Company': 'Microsoft'}
NewDict3 =  {'Name': 'Humphrey,Smith', 'Company': 'Microsoft'}

# 统一收纳所有待处理字典
all_records = [NewDict1, NewDict2, NewDict3]
grouped = {}

for record in all_records:
    company = record['Company']
    # 替换姓名中的逗号为空格
    fixed_name = record['Name'].replace(',', ' ')
    # 按公司分组
    if company not in grouped:
        grouped[company] = []
    grouped[company].append(fixed_name)

# 按要求格式拼接结果
final_output = ' '.join([f"{comp} : {', '.join(name_list)}" for comp, name_list in grouped.items()])
print(final_output)

运行代码后输出结果完全匹配预期:

Google : John Davies Microsoft : Boris Barry, Humphrey Smith

如果想要简化分组时的键存在判断,可以使用标准库collections.defaultdict,代码更简洁:

from collections import defaultdict

NewDict1 =  {'Name': 'John,Davies', 'Company': 'Google'}
NewDict2 =  {'Name': 'Boris,Barry', 'Company': 'Microsoft'}
NewDict3 =  {'Name': 'Humphrey,Smith', 'Company': 'Microsoft'}

all_records = [NewDict1, NewDict2, NewDict3]
grouped = defaultdict(list)

for record in all_records:
    grouped[record['Company']].append(record['Name'].replace(',', ' '))

final_output = ' '.join([f"{comp} : {', '.join(name_list)}" for comp, name_list in grouped.items()])
print(final_output)

后续如果新增同结构的字典数据,只需要把新字典追加到all_records列表中即可,不需要修改后续处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:36:20