在字典中查找最大值[重复]
Posted
技术标签:
【中文标题】在字典中查找最大值[重复]【英文标题】:Finding largest value in a dictionary [duplicate] 【发布时间】:2012-09-14 11:36:15 【问题描述】:可能重复:Getting key with maximum value in dictionary?
假设我有一个由整数键和整数值组成的字典。我想找到具有最高对应值的整数键。是否有任何内置方法可以执行此类操作,或者我是否需要实现某种合并/排序算法?
【问题讨论】:
已经在 *** 上回答 here 试图找到一个现有的答案?看到这个:***.com/questions/268272/… - 解决方案就是这个:max(stats.iteritems(), key=operator.itemgetter(1))
max(stats, key=stats.itemgetter(1)) 是***.com/questions/268272/…投票最多的人
【参考方案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
)。以上是关于在字典中查找最大值[重复]的主要内容,如果未能解决你的问题,请参考以下文章