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

如何在Python中高效从字典长列表提取指定元素?

从字典列表中高效提取指定键的值

假设我们有一个结构统一的字典列表(所有字典的键完全相同),示例如下:

d = [{'a':1}, {'a':2}, {'a':3}]

需要提取所有字典中同一个键(比如'a')的值,下面是几种高效实现方式的对比:

1. 列表推导式(Python原生高效写法)

这是最直观且在纯Python中效率很高的写法,底层经过优化,比手动初始化空列表再逐个append要快得多:

result = [i['a'] for i in d]

对于中小规模的数据,这个写法的可读性和效率都很均衡。

2. 使用operator.itemgetter结合map

借助operator模块的itemgetter(C语言实现),配合map函数可以进一步减少Python层面的循环开销,在数据量较大时表现略优于列表推导式:

from operator import itemgetter
result = list(map(itemgetter('a'), d))

3. 向量化处理(适合超大规模数据)

如果你的数据量非常大(几万条甚至更多),可以用pandas的向量化操作来提速——向量化本质是把循环转移到底层C代码执行,避免Python解释器的开销:

import pandas as pd
df = pd.DataFrame(d)
result = df['a'].tolist()

注意:转换DataFrame本身有一定初始化开销,数据量较小时反而不如前两种方法高效,适合超大规模场景。

效率总结

  • 小规模数据(≤1万条):列表推导式和itemgetter+map效率接近,优先选可读性更好的列表推导式。
  • 大规模数据(≥10万条):pandas的向量化方法优势显著。
  • 追求极致性能的纯Python场景:itemgetter+map是最优选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:16:13