【问题标题】:Finding largest value in a dictionary [duplicate]在字典中查找最大值[重复]
【发布时间】:2012-09-14 11:36:15
【问题描述】:

可能重复:
Getting key with maximum value in dictionary?

假设我有一个由整数键和整数值组成的字典。我想找到具有最高对应值的整数键。是否有任何内置方法可以执行此类操作,或者我是否需要实现某种合并/排序算法?

【问题讨论】:

标签: python


【解决方案1】:

你可以使用max

>>> x = {1:2, 3:6, 5:4}
>>> max(x, key=lambda i: x[i])
3

或者只是:

>>> max(x, key=x.get)
3

【讨论】:

    【解决方案2】:

    有一些方法可以做到这一点,首选的方法是使用这个:

    import operator
    
    result = max(your_dict.iteritems(), key=operator.itemgetter(1))[0]
    

    请注意,根据您的需要,operator.itemgetter(1) 可以替换为 lambda x: x[1]

    【讨论】:

    • 使用your_dict.iteritems() 比仅使用your_dict 有什么优势吗?
    • @verdesmarald:它们给出不同的结果(your_dict.iteritems() 返回的不是your_dict),所以它们没有可比性。
    • 抱歉,我的意思是针对这个特定问题,max(your_dict.iteritems())[0] 给出的结果与 max(your_dict) 相同。
    • @verdesmarald:你错了——max(your_dict) 会给你最大的键,而不是对应于最大值的键。要查看差异,请查看以下结果:max({1:100,2:20})(它会给您2 而不是1)。
    猜你喜欢
    • 1970-01-01
    • 2019-06-07
    • 2020-05-03
    • 2021-04-25
    • 1970-01-01
    • 2016-01-19
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多