簡體   English   中英

在 Python 中獲取最接近 1 的字典鍵的最快方法

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

筆記:

  1. 此方法也適用於列表

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM