【问题标题】: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))
    

    【讨论】:

      猜你喜欢
      • 2016-12-06
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 2016-04-14
      • 2022-06-11
      • 2016-05-23
      相关资源
      最近更新 更多