Skip to main content
 首页 » 编程设计

python之从字典中的列表中查找元素并返回该键

2025年05月04日10kenshinobiy

如果我将 someDictionary 定义为

{'1': 33, '2': 44, '3': 55, '4': 10, '5': 66, '6': 60} 

和someList定义为

[51, 52, 53, 54, 55, 56] 

如何在 someDictionary 中找到与 someList 中的元素相匹配的键?目前,我假设不会有超过一场比赛。

我想应该是这样的:

for k, v in someDictionary.items(): 
    if v == someList: 
        myAnswer = k 

鉴于上面的代码,myAnswer 将是 3

我需要做的第二部分是,如果 someList 不包含 someDictionary 中的元素,则在 someDictionary 中找到大于(但最接近)的值someList 中的最后一个元素 someList[-1]

在那种情况下,myAnswer 将是 6

请您参考如下方法:

听起来你想要一个 bidict

>>> from bidict import bidict  # pip install bidict 
>>> d = bidict({'1': 33, '2': 44, '3': 55, '4': 10, '5': 66, '6': 60}) 
>>> d['3'] 55 
>>> d.inv[55] '3' 

这允许在任一方向上进行 O(1) 查找。现在,您可以遍历 someList 并有效地检查元素是否在 in d.inv 中。