我有一個 Python 字典,我想在其中找到 3 個最小值的鍵。
例如:
Input: d = {1 : 10 , 0.1 : 15 , 0.3 : 18 , 0.001 : 25 , 0.003 : 42}
Output: [1, 0.1 , 0.3]
我知道如何通過串列理解僅獲取一個最小值:
min_val = min(d.values())
min_numbers = [num for num, value in d.items() if value == min_val]
但是我怎么做三個呢?
uj5u.com熱心網友回復:
嘗試這個:
l = [item for item in sorted(d, key=d.get)][0:3]
print(l)
輸出
[1, 0.1, 0.3]
uj5u.com熱心網友回復:
你可以這樣做:
d = {1: 10, 0.1: 15, 0.3: 18, 0.001: 25, 0.003: 42}
for _, k in sorted([(v, k) for k, v in d.items()])[:3]:
print(k)
輸出:
1
0.1
0.3
uj5u.com熱心網友回復:
您可以將字典items方法與sorted函式結合使用,然后使用串列理解僅過濾值,并使用切片提取三個第一個結果:
d = {1 : 10 , 0.1 : 15 , 0.3 : 18 , 0.001 : 25 , 0.003 : 42}
min_numbers = [key for key, value in sorted(d.items(), key=lambda item: item[1])][:3]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/441348.html
下一篇:對每個輸入中的值求和
