擅长:python、mysql、java
<p>您可以使用<a href="https://docs.python.org/3.7/library/heapq.html#heapq.nsmallest" rel="nofollow noreferrer">^{<cd1>}</a>:</p>
<pre><code>from heapq import nsmallest
A = {'abc': 12.3, 'def': 17.3, 'dsfsf': 18, 'ppp': 3.2, 'jlkljkjlk': 9.23}
def nearest(D, centre, k=10):
return [[x, D[x], abs(D[x] - centre)] for x in nsmallest(k, D, key=lambda x: abs(D[x] - centre))]
print(nearest(A, centre=10, k=2))
# [['jlkljkjlk', 9.23, 0.7699999999999996], ['abc', 12.3, 2.3000000000000007]]
</code></pre>
<p>就时间复杂性而言,它在<code>O(n log(k))</code>时间内运行,而不是在基于字典排序的解决方案的<code>O(n log(n))</code>时间内运行。你知道吗</p>