Python 在字典中查找最接近给定数字的值

Python 在字典中查找最接近给定数字的值,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,python 3新手,正在尝试使用一些字典 我想要的是我有一本有很多键的字典,例如,{Dog:2,Cat:5,Fish:3},但它真的很大。现在给我一个值,例如2,我希望它返回10个字典元素,它们的值最接近2 如果有可能的话,你有什么想法吗?如果有,有人能给我指出正确的道路吗 对不起,我刚刚意识到,实际上我想要的只是钥匙。是的。对于Python,使用 导入heapq d= def f(对):返回abs(对[1]-2) 最小值10=heapq(10,d,键=f) 要获得更一般的答案,请在web上

python 3新手,正在尝试使用一些字典

我想要的是我有一本有很多键的字典,例如,
{Dog:2,Cat:5,Fish:3}
,但它真的很大。现在给我一个值,例如
2
,我希望它返回10个字典元素,它们的值最接近
2

如果有可能的话,你有什么想法吗?如果有,有人能给我指出正确的道路吗

对不起,我刚刚意识到,实际上我想要的只是钥匙。

是的。对于Python,使用

导入heapq
d=
def f(对):返回abs(对[1]-2)
最小值10=heapq(10,d,键=f)
要获得更一般的答案,请在web上搜索“n”。已经有相关的答案了。

是的。对于Python,使用

导入heapq
d=
def f(对):返回abs(对[1]-2)
最小值10=heapq(10,d,键=f)

要获得更一般的答案,请在web上搜索“n”。已经有相关的答案了。

最接近于2和3,或者一些更科学的方法,比如值总是一个数字吗?因此,如果在我的字典中有
5
元素具有值
2
1
元素具有值
3
4
元素具有值
1
6
带值
0
9
带值
4
。然后它将返回值为
2
1
3
的元素。在本词典中,值始终是一个数字,如2和3中所述,或者一些更科学的方法,如值始终是一个数字吗?因此,如果在我的词典中有
5
个元素具有值
2
1
个元素具有值
3
4
个元素具有值
1
6
带值
0
9
带值
4
。然后它将返回值为
2
1
3
的元素。在这个字典中,这个值总是一个数字。我总是喜欢看到一个核心开发人员出现并回答::-)这比迭代要好,但对于OP来说可能没有那么直观(作为初学者)。当我看到核心开发人员出现并回答问题时,我总是很喜欢它。:-)这比迭代要好,但对于OP(初学者)来说可能没有那么直观。
import heapq
d = <iterable of many key-value pairs>

def f(pair): return abs(pair[1]-2)

least10 = heapq(10, d, key=f)