【问题标题】:Python Return Max Dictionary EntryPython 返回最大字典条目
【发布时间】:2022-01-20 00:02:17
【问题描述】:
我有一个默认字典,它存储出现在列表中的名称计数。字典如下:
{“约翰”:5,“吉姆”:2,“扎克”:1,“布莱恩”:5,“蒂姆”:3}
如何有效地返回只包含最大值的字典?在这种情况下,由于是平局,我正在寻找最终结果是:
{“约翰”:5,“布赖恩”:5}
我知道我可以遍历原始字典来完成此操作,但我很好奇是否有更 Pythonic 的方式来实现它。
【问题讨论】:
标签:
python-3.x
dictionary
【解决方案1】:
您可以将其用作仅选择最大值的方法:
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)
基本上,它首先从字典中找出最大值,然后过滤掉与最大值匹配的条目。
【解决方案2】:
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))