我有一個 defaultdict 存盤串列中出現的名稱的計數。字典如下:
{“約翰”:5,“吉姆”:2,“扎克”:1,“布賴恩”:5,“蒂姆”:3}
如何有效地回傳只包含最大值的字典?在這種情況下,由于存在平局,我正在尋找最終結果:
{“約翰”:5,“布賴恩”:5}
我知道我可以遍歷原始字典來完成此操作,但我很好奇是否有更 Pythonic 的方式來解決它。
uj5u.com熱心網友回復:
您可以將其用作僅選擇最大值的方法:
dict1 = {"John": 5, "Jim": 2, "Zack": 1, "Brian": 5, "Tim": 3}
max1 = max(dict1.values())
dict2 = dict(filter(lambda elem: elem[1] == max1, dict1.items()))
print(dict2)
基本上,它首先從字典中找出最大值,然后過濾掉與最大值匹配的條目。

uj5u.com熱心網友回復:
mm = {"John": 5, "Jim": 2, "Zack": 1, "Brian": 5, "Tim": 3}
def keys_with_top_values(my_dict):
return [key for (key, value) in my_dict.items() if value == max(my_dict.values())]
print(keys_with_top_values(mm))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/418717.html
標籤:
