所以我有一個包含鍵(整數)和值(也是整數)的字典。如果值最小,我想從字典中洗掉該專案,但如果有兩個專案具有相同的值,我想洗掉具有最小鍵的專案。
到目前為止,我已經設法選擇了最小值,
min_key = min(dictionary, key=dictionary.get)
但如果有多個具有相同值的專案,它只會選擇它找到的字典中的第一個值,而不是兩個。
有沒有人有什么建議?
uj5u.com熱心網友回復:
您可以使用lambda兩個條件作為關鍵min
min_key = min(dictionary, key=lambda k: (dictionary.get(k), k))
如果超過匹配,這將首先找到最小值,然后找到最小的鍵。
dictionary = {4: 1, 5: 1, 3: 3, 0: 4} # will give 4
dictionary = {4: 1, 2: 1, 3: 3, 0: 4} # will give 2
uj5u.com熱心網友回復:
分離值和鍵。首先創建一個值串列并使用min()函式找到最小值。然后使用回圈,檢查所有具有最小值的鍵并將其收集在串列中。然后min()再次使用函式找到鍵的最小值。您的代碼:
x={1:4,2:4,5:1,6:1}
m1=min(list(x.values()))
m2=[] #m2 for collecting keys which have least value
for i in x:
if x[i]==m1:
m2.append(i) #appending
del x[min(m2)]
print(x)
輸出:
{1:4,2:4,6:1}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/350559.html
上一篇:在python中呼叫字典范圍
