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

如何从字典数组中获取与指定数组值匹配的键对应的值?

嘿,这问题我之前也帮人解答过,给你几个实用的思路哈~

核心思路:匹配键与数组元素

我们要做的就是逐个检查b里每个字典的键,看看是不是在a的元素里,要是匹配上了就把对应的值捞出来。这里有两种常见实现方式:

1. 直观遍历法(适合新手理解)

先把a转成集合(集合的存在性检查比列表快很多,尤其是当a元素多的时候),然后遍历b里的每个字典,再遍历字典的键值对,符合条件的就加入结果列表:

a = [1,2,3]
b = [{2:"a"},{3:"b"},{45:"r"},{16:"a"}]

# 转集合提升检查效率
a_set = set(a)
matched_values = []

for dic in b:
    # 遍历每个字典的键值对
    for key, val in dic.items():
        if key in a_set:
            matched_values.append(val)

print(matched_values)  # 输出:['a', 'b']

2. 简洁列表推导式(一行搞定)

如果你喜欢更紧凑的写法,用嵌套列表推导式就能完成,逻辑和上面是一样的:

a_set = set(a)
matched_values = [val for dic in b for key, val in dic.items() if key in a_set]

小提醒

  • 要是b里的字典有多个键(比如某个字典是{2:"a", 3:"c"}),上面的方法也能把所有符合条件的值都收集到结果里。
  • 转集合这步不是必须的,但当a的元素数量大的时候,能明显提升代码运行效率,建议养成这个习惯~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:20:41