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

如何将pymongo查询得到的单元素字典列表转换为对应值的列表

答案

没有专门实现该需求的内置函数,有以下更简洁高效的实现方案:

  • 你当前的写法属于不推荐的反模式:用列表推导式执行带副作用的append操作,会生成一个全是None的无用临时列表,浪费内存空间。
  • 最常用的高性能写法是直接用列表推导式生成目标列表:
result = [i['id'] for i in ids]

这种写法没有多余中间变量,可读性和性能都优于你当前的实现。

  • 如果你希望用内置函数组合实现,可以搭配map和operator.itemgetter:
from operator import itemgetter
result = list(map(itemgetter('id'), ids))

该写法在数据量极大的场景下,性能和列表推导式基本持平。

  • 针对你使用pymongo的场景,最优方案是直接在查询阶段就获取目标格式的结果,不需要额外遍历转换:
# 其中col为你的集合对象,query为你的查询过滤条件
result = col.distinct("id", query)

该方案直接从MongoDB层面返回仅包含id值的列表,省去了数据传输和Python层遍历的开销,性能最好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:06