获取Python中最接近1的字典键的最快方法

时间:2016-03-11 13:26:29

标签: python dictionary key sorted

您好我想问这是否是最快的,并采用最少的资源方式在字典中获得最接近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

2 个答案:

答案 0 :(得分:1)

我就是这样做的:

closest = sorted(dct.values(), key=lambda x: abs(1-x))[0]

我使用一个键对项目进行排序,该键给出了数字与1之间的距离。 (abs(1-x1))。因此,第一项是最接近1的值。你可以在GáborErdős的回答中使用min(),但是如果你想知道整个订单,请使用它。

答案 1 :(得分:0)

这应该这样做

min(list(dct.values()), key=lambda x: abs(x - 1))

注意:

  1. 此方法也适用于列表

  2. 这不是最有效的 办法。更快的方法是使用bisect