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

如何用纯Python实现参考字典与字典列表匹配并提取对应值

纯Python原生实现方案

你可以直接通过遍历字典列表+键值对匹配实现,不需要引入pandas,以下是兼容所有Python3版本的写法:

def f(ref, dict_list):
    # 遍历所有字典,找到第一个完全匹配ref所有键值对的条目,返回其c键的值
    return next(
        d["c"] 
        for d in dict_list 
        if all(d.get(k, object()) == v for k, v in ref.items())
    )

如果你的运行环境是Python3.9及以上,可以用字典视图的子集判断简化写法:

def f(ref, dict_list):
    return next(d["c"] for d in dict_list if ref.items() <= d.items())

特性说明

  • 无任何第三方依赖,比pandas实现轻量很多,且没有构建DataFrame的额外性能开销
  • 不需要硬编码ref的键名,不管ref后续新增多少个匹配键都不需要修改代码,扩展性远优于原pandas实现
  • 行为和你原实现完全一致:返回第一个匹配到的字典的c值,如果需要匹配不到时不抛异常,可以给next传第二个默认值,比如next(..., None),匹配失败时会直接返回None

测试效果

代入你给出的示例参数:

ref = {"a": 1, "b": 2}
dict_list = [{"a": 1, "b": 2, "c": "success!"}, {"a": 1, "b": 3, "c": "nope!"}]
print(f(ref, dict_list)) # 输出 success!

内容的提问来源于stack exchange,提问作者dave-edison

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:27:03