[英]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.