0
python 3的新手,並嘗試使用某些字典。查找字典中與給定數字最接近的值
我要去的是我有一個有很多鍵的字典,例如{Dog : 2, Cat : 5, Fish : 3}
但它真的很大。現在我給了一個值,例如2
,我希望它返回十個字典元素的值最接近2
。
任何想法,如果有可能做到這一點,如果有的話,可以有人指出我在正確的道路上?
對不起,我剛剛意識到,實際上我想要返回的是關鍵。
python 3的新手,並嘗試使用某些字典。查找字典中與給定數字最接近的值
我要去的是我有一個有很多鍵的字典,例如{Dog : 2, Cat : 5, Fish : 3}
但它真的很大。現在我給了一個值,例如2
,我希望它返回十個字典元素的值最接近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上已經有相關的答案。
我總是喜歡它,當我看到一個core-dev來回答。 :-)這比迭代更好,但它可能不像OP(作爲初學者)那樣直觀。 –
最接近於2和3或像[最近的鄰居](http://scikit-learn.org/stable/modules/neighbors.html)一些更科學的方法 –
值是否總是一個數字? –
所以如果在我的字典中有5個元素的值爲2,值爲1的元素的值爲3,值4的值爲1,值6的值爲0,值爲9,值'4'。然後它會返回值爲'2','1'和'3'的元素。該值總是這個字典中的一個數字 – GingerDom