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

如何根据指定列表首元素匹配字典列表,提取后续键对应的值?

自动匹配字典提取对应值的实现方案

问题说明

我有多个键相同但值不同的字典,已存入列表group_selection。需要实现:给定一个输入列表,用列表首字符串元素匹配对应字典('1'对应group1,'2'对应group2,'3'对应group3),再用列表剩余字符串作为键,从匹配到的字典中提取对应值。

目前仅能手动指定字典索引完成需求,希望实现自动匹配。例如:

  • 输入['1', '2', '4', '5'],返回[[0, 0], [2, 2], [4, 4], [5, 5]]
  • 输入['3', '1'],返回[[3, 3]](注:原描述此处可能笔误,根据给定group3字典,键'1'对应值为[3,3])

实现代码

# 定义各分组字典
group1 = {'1': [0, 0], '2': [2, 2], '3': [3, 3], '4': [4, 4], '5': [5, 5]}
group2 = {'1': [2, 2], '2': [0, 0], '3': [4, 4], '4': [5, 5], '5': [6, 6]}
group3 = {'1': [3, 3], '2': [4, 4], '3': [0, 0], '4': [6, 6], '5': [7, 7]}

# 创建分组映射表,直接用字符串标识关联对应字典
group_map = {
    '1': group1,
    '2': group2,
    '3': group3
}

def extract_target_values(input_list):
    # 拆分分组标识和待提取的键列表
    group_identifier, *target_keys = input_list
    # 获取目标字典
    target_dict = group_map[group_identifier]
    # 批量提取对应值
    return [target_dict[key] for key in target_keys]

# 测试示例
example = ['2', '5', '3', '3', '1', '2']
print(extract_target_values(example))  # 输出: [[0, 0], [6, 6], [4, 4], [4, 4], [2, 2], [0, 0]]

test_case1 = ['1', '2', '4', '5']
print(extract_target_values(test_case1))  # 输出: [[0, 0], [2, 2], [4, 4], [5, 5]]

test_case2 = ['3', '1']
print(extract_target_values(test_case2))  # 输出: [[3, 3]]

代码说明

  • 分组映射表:通过group_map将字符串标识与对应的字典绑定,替代手动索引,实现快速匹配。
  • 列表解包:用group_identifier, *target_keys = input_list快速拆分首元素和剩余键列表,代码更简洁。
  • 列表推导式:批量遍历键列表提取对应值,高效完成取值操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:07:32