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

Python如何从字典列表中提取指定Serial对应的所有Slave_ID值列表

实现方案

方案1:单次遍历法(适合少量查询场景)

直接遍历字典列表匹配目标Serial,提取对应Slave_ID即可:

my_dict = [{'Serial': 'AAAAAA', 'Slave_ID': 2},{'Serial': 'BBBBBB', 'Slave_ID': 3}, {'Serial': 'AAAAAA', 'Slave_ID': 5}]

def Extract_slave_id(target_serial):
    result = []
    for item in my_dict:
        if item['Serial'] == target_serial:
            result.append(item['Slave_ID'])
    # 如需和示例顺序[5,2]一致,添加反转逻辑,不需要可删除
    return result[::-1]

调用测试:执行Extract_slave_id('AAAAAA') 输出结果为 [5, 2],符合需求。

方案2:预构建映射字典(适合多次查询场景)

如果需要频繁调用查询接口,可以提前把所有Serial和对应Slave_ID的映射关系建好,后续单次查询时间复杂度为O(1),性能更高:

my_dict = [{'Serial': 'AAAAAA', 'Slave_ID': 2},{'Serial': 'BBBBBB', 'Slave_ID': 3}, {'Serial': 'AAAAAA', 'Slave_ID': 5}]

# 预构建映射关系
serial_map = {}
for item in my_dict:
    serial_val = item['Serial']
    if serial_val not in serial_map:
        serial_map[serial_val] = []
    serial_map[serial_val].append(item['Slave_ID'])
# 统一反转每个列表,保证输出顺序和示例一致,不需要可删除
for k in serial_map:
    serial_map[k] = serial_map[k][::-1]

def Extract_slave_id(target_serial):
    return serial_map.get(target_serial, [])

调用测试和方案1结果一致,查询不存在的Serial时会默认返回空列表。

说明:如果不需要严格匹配示例的[5,2]输出顺序,删除两段代码里的反转逻辑即可,默认返回字典列表中Slave_ID的出现顺序[2,5]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:45:01