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

如何用Python按ID列表过滤对象列表并提取指定字段?

Pythonic方式筛选对象并提取字段值

输入数据

my_objects = [
    {
        "id":0,
        "some_value":"a"
    },
    {
        "id":1,
        "some_value":"a"
    },
    {
        "id":2,
        "some_value":"b"
    },
    {
        "id":3,
        "some_value":"b"
    },
]
ids = [1, 2]

1. 筛选包含目标ID的对象列表

使用列表推导式即可完成筛选。为了提升ID查找效率(尤其当ids列表较大时),建议先将ids转换为集合:

id_set = set(ids)
my_objects_filtered = [obj for obj in my_objects if obj["id"] in id_set]

执行后得到的my_objects_filtered就是符合要求的对象列表:

[
    {
        "id":1,
        "some_value":"a"
    },
    {
        "id":2,
        "some_value":"b"
    }
]

2. 提取some_value字段值

有两种实现方式:

  • 基于筛选后的列表提取:如果需要保留筛选后的对象列表,可在此基础上再做一次推导:
    result = [obj["some_value"] for obj in my_objects_filtered]
    
  • 一步完成筛选+提取:如果不需要保留中间的对象列表,直接合并两步操作更高效:
    id_set = set(ids)
    result = [obj["some_value"] for obj in my_objects if obj["id"] in id_set]
    

两种方式最终都会得到结果:["a", "b"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:57:49