gpt4 book ai didi

python - 查找值最接近某个值的 k 个 dict 项

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:41 27 4
gpt4 key购买 nike

假设我们要找到其值最接近 10 的 2 个项目:

A = {'abc': 12.3, 'def': 17.3, 'dsfsf': 18, 'ppp': 3.2, "jlkljkjlk": 9.23}

适用于:

def nearest(D, centre, k=10):
return sorted([[d, D[d], abs(D[d] - centre)] for d in D], key=lambda e: e[2])[:k]

print(nearest(A, centre=10, k=2))

[['jlkljkjlk', 9.23, 0.7699999999999996], ['abc', 12.3, 2.3000000000000007]]

但是当 dict 的大小(数十万个项目)大得多时,是否有 Python 内置方法和/或更优化的版本来执行此操作?

最佳答案

如果您不介意使用 Pandas:

import pandas as pd
closest = (pd.Series(A) - 10).abs().sort_values()[:2]
#jlkljkjlk 0.77
#abc 2.30
closest.to_dict()
#{'jlkljkjlk': 0.7699999999999996, 'abc': 2.3000000000000007}

关于python - 查找值最接近某个值的 k 个 dict 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52806294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com