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

Python如何从字典中提取与指定值列表匹配的所有键

错误原因

你给出的写法是把myvals里的元素当成字典的键去取对应值,而字典默认是按键索引存储的,你的需求是根据值反向匹配对应的键,刚好搞反了键值的查询方向,所以无法得到正确结果。

正确实现方式

基础写法(适配小规模数据)

直接通过列表推导式遍历字典的键值对,匹配值属于myvals的键即可:

dictionary = {"raj": 2, "striver": 3, "vikram": 4}
myvals = [2,4]

result = [k for k, val in dictionary.items() if val in myvals]

执行后result的输出就是['raj', 'vikram'],符合需求。

优化写法(适配大规模数据)

如果myvals的元素数量较多,可以先把它转成集合,把值匹配的查询时间复杂度从O(n)降到O(1),提升执行效率:

dictionary = {"raj": 2, "striver": 3, "vikram": 4}
myvals = [2,4]

myvals_set = set(myvals)
result = [k for k, val in dictionary.items() if val in myvals_set]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:15:03