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

如何将字典列表快速转换为嵌套字典?求比Pandas更快的实现

字典列表转嵌套字典的高效实现方式

问题背景

给定如下字典列表:

ls1 = [{'AccountBalance': '78', 'Status': '0'},
 {'AccountBalance': '56', 'Status': '1'},
 {'AccountBalance': '34', 'Status': '0'},
 {'AccountBalance': '12', 'Status': '0'}]

需要转换为以下结构的嵌套字典:

dict1 = {'AccountBalance': {0: '78',
  1: '56',
  2: '34',
  3:  '12'},
    'Status': {0: '0',
  1: '1',
  2: '0',
  3: '0'}}

已知用pd.DataFrame(ls1).to_dict()可以实现转换,想找更快的替代方法。


高效实现方案

1. 纯Python原生循环实现

不需要依赖任何第三方库,直接通过遍历构建目标字典,比pandas的方法快很多,尤其是小数据量场景:

# 先提取所有需要的键
keys = ls1[0].keys()
# 初始化目标嵌套字典
result = {key: {} for key in keys}

# 遍历原列表,按索引填充对应值
for idx, item in enumerate(ls1):
    for key in keys:
        result[key][idx] = item[key]

2. 字典推导式简化版

和上面的循环逻辑完全一致,只是用字典推导式让代码更简洁,效率几乎相同:

keys = ls1[0].keys()
result = {
    key: {idx: item[key] for idx, item in enumerate(ls1)}
    for key in keys
}

为什么这些方法更快?

pandas的DataFrame在创建和转换过程中会做大量额外操作,比如数据类型校验、索引管理、内存优化等,这些操作对于复杂数据处理很有用,但对于这种简单的结构转换来说都是额外开销。原生Python操作直接针对需求处理,没有多余步骤,所以执行效率更高。如果是超大规模数据,可以再测试对比,但绝大多数场景下原生实现足够高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:12:15