我有一个字典myDict
{'1': 5, '2': 13, '3': 23, '4': 17}
我正在使用这段代码,它一直很有效,以便在
myDict
中查找最接近targetVal
的键/值对。answer = key, value = min(myDict.items(), key=lambda (_, v): abs(v - targetVal))
假设
targetVal
是14
,answer
返回:('2': 13)
现在我需要处理
myDict
中相同的值。例如,如果myDict
现在是这样的:{'1': 5, '2': 13, '3': 23, '4': 13}
我需要那些值为13
的键/值对。在代码(上面)查找到myDict
中最接近的值,且该值出现多次的情况下,我想创建一个新字典。在这种情况下,answer
将返回:
{'2': 13, '4': 13}
是否有可能更新找到answer
的方式,以考虑最接近的值出现多次的情况?
{k:v for k,v in myDict.items() if v == answer[1]}
- Chris_Randsanswer
只是一个键值对吗? - yodishanswer[1]
是值,它有效。 - Chris_Rands