擅长:python、mysql、java
<p>我同意“septra”的说法,你需要euqlidean距离,但这在numpy身上也是可以实现的:</p>
<pre><code>from collections import defaultdict
import numpy as np
def_dict = defaultdict(list)
# entries that will be stored in the defaultdict
reg_dict = {0: ["a", "b"], 2: ["c", "d"], 5: ["k", "h"], -3: ["i", "l"]}
# store items from regular dict in defaultdict
for k, v in reg_dict.items():
def_dict[k] = v
periods = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8]
a = list(def_dict.keys())
for period in periods:
closest_key = np.sqrt(np.power(np.add(a, -period),2)).argmin()
# OR closest_key = np.abs(np.add(a, -period)).argmin()
print("period: ", period, " - looked up key: ", a[closest_key])
</code></pre>