如果我将 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 中。
