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

时间:2016-11-15 16:19:16

标签: python python-3.x dictionary

python 3的新手,并尝试使用一些词典。

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

任何想法是否可以做到这一点,如果有的话,有人可以指出我在正确的道路上?

抱歉,我刚刚意识到实际上我想要归还的只是关键。

1 个答案:

答案 0 :(得分:2)

是。使用Python,使用heapq.nsmallest

import heapq
d = <iterable of many key-value pairs>

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

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

要获得更一般的答案,请搜索“n最小”的网页。 SO上已有相关答案。