[英]Quickest way to get dictionary key that is closest to 1 in Python
嗨,我想问一下,这是在字典中获得最接近 1 的值的最快且占用最少资源的方法,还是有更好、更有效的方法来做到这一点。
import operator
dct = {"a": 0.1, "b": 0.2, "c": 0.7, "d": 1, "e": 0.5}
sorted_orders = sorted(dct.items(), key=operator.itemgetter(1))
sorted_orders = str(sorted_orders.pop()[:1])
a = len(sorted_orders) - 3
sorted_orders = sorted_orders[2:a]
print sorted_orders
所需的输出是此处最接近 1 的键的内容:d
这就是我将如何做到的:
closest = sorted(dct.values(), key=lambda x: abs(1-x))[0]
我使用给出数字和1
之间距离的键对项目进行排序。 ( abs(1-x1)
)。 因此,第一项是最接近1
的值。 您可以在 Gábor Erdős 的回答中使用min()
,但如果您想知道整个顺序,请使用它。
这应该做
min(list(dct.values()), key=lambda x: abs(x - 1))
笔记:
此方法也适用于列表
这不是最有效的方式。 更快的方法是使用bisect
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.