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

如何检查列表元素是否存在于字典的值中并提取对应键值对

可以通过遍历字典的items()方法同时获取键值对,配合字典推导式快速完成过滤:

基础实现

list0 = [
    -0.2385384148158066,
    -0.2307061452151448,
    -0.2150726345799602,
    -0.2138622652947372,
    -0.1098235264547504,
    -0.1072424768342444,
    -0.1037212327115436,
    -0.0966926943378552,
    -0.09614853460521154,
    9.353161396230564e-07
]
dict0 = {
    67: 1.440192237446893e-05,
    91: -0.1037212327115436,
    115: -0.2307061452151448,
    172: 0.0002879308975510175,
    242: 1.340170610273099e-05,
    266: -0.09614853460521154,
    290: -0.2138622652947372,
    347: 9.353161396230564e-07,
    417: 1.462739691486375e-05,
    441: -0.1072424768342444,
    465: -0.2385384148158066,
    513: 0.001208308075300354,
    606: -0.1098235264547504,
    630: -0.2442794187837403,
    677: 0.0007379497093922571,
    747: 1.336163063745514e-05,
    771: -0.0966926943378552,
    794: -0.2150726345799602
}

# 核心过滤逻辑
new_dict = {k: v for k, v in dict0.items() if v in list0}

性能优化版

如果list0元素量很大,可以先转为集合提升查找效率(集合的in操作时间复杂度为O(1),远高于列表的O(n)):

set0 = set(list0)
new_dict = {k: v for k, v in dict0.items() if v in set0}

输出结果

过滤后得到的new_dict内容如下:

{
    91: -0.1037212327115436,
    115: -0.2307061452151448,
    266: -0.09614853460521154,
    290: -0.2138622652947372,
    347: 9.353161396230564e-07,
    441: -0.1072424768342444,
    465: -0.2385384148158066,
    606: -0.1098235264547504,
    771: -0.0966926943378552,
    794: -0.2150726345799602
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:06:08