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

如何高效处理海量字典列表:合并公共元素并分组指定字段到新键?

高效合并字典列表的分组方案

针对你这个大规模字典列表的分组合并需求,我给你整理了两种高效的实现方式,比两次嵌套循环要简洁得多,而且性能更优,尤其适合数据量巨大的场景:

方法一:纯Python原生实现(一次循环,内存友好)

核心思路是用一个临时字典做分组映射,以(name, state)作为唯一标识键,遍历一次输入列表就完成分组合并,避免多次循环带来的性能损耗。

input_data = [
    {'name':'emp1','state':'TX','areacode':'001','mobile':123},
    {'name':'emp1','state':'TX','areacode':'002','mobile':234},
    {'name':'emp1','state':'TX','areacode':'003','mobile':345},
    {'name':'emp2','state':'TX','areacode':None,'mobile':None},
]

# 临时字典,用于按(name, state)分组
grouped = {}

for item in input_data:
    # 提取分组键
    key = (item['name'], item['state'])
    # 提取contact相关字段
    contact = {'areacode': item['areacode'], 'mobile': item['mobile']}
    
    if key not in grouped:
        # 首次遇到该分组,初始化结构
        grouped[key] = {
            'name': item['name'],
            'state': item['state'],
            'contactoptions': [contact]
        }
    else:
        # 已有分组,追加contact项
        grouped[key]['contactoptions'].append(contact)

# 把字典的值转成最终列表
opdata = list(grouped.values())
print(opdata)

这个方法的时间复杂度是O(n),只需要遍历一次数据,比两次循环的O(n²)效率提升非常明显,而且不需要额外依赖第三方库。

方法二:用Pandas实现(适合超大规模数据集)

如果你的数据量特别大(比如百万级以上),Pandas的分组操作经过底层优化,性能会更出色。步骤如下:

import pandas as pd

input_data = [
    {'name':'emp1','state':'TX','areacode':'001','mobile':123},
    {'name':'emp1','state':'TX','areacode':'002','mobile':234},
    {'name':'emp1','state':'TX','areacode':'003','mobile':345},
    {'name':'emp2','state':'TX','areacode':None,'mobile':None},
]

# 转成DataFrame
df = pd.DataFrame(input_data)

# 按name和state分组,把areacode和mobile转成字典列表
grouped_df = df.groupby(['name', 'state']).apply(
    lambda x: x[['areacode', 'mobile']].to_dict('records')
).reset_index(name='contactoptions')

# 转成目标格式的字典列表
opdata = grouped_df.to_dict('records')
print(opdata)

Pandas的groupby操作是基于C语言实现的底层优化,处理超大数据集时比纯Python循环更高效,而且代码可读性也很强。

两种方法都能输出你需要的结果,你可以根据自己的数据规模选择合适的方案:小到中等规模数据用纯Python方法足够,超大规模数据优先考虑Pandas。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:29:16