Finding largest value in a dictionary
Possible Duplicate:
Getting key with maximum value in dictionary?
假设我有一个由整数键和整数值组成的字典。我想找到对应值最高的整数键。有没有什么内置的方法可以做这样的事情,或者我需要实现某种合并/排序算法?
- 已在StackOverflow上应答
- 是否已尝试查找现有答案?请参阅:stackoverflow.com/questions/268272/…-解决方案是:max(stats.iteritems(), key=operator.itemgetter(1))。
- max(stats,key=stats.itemgetter(1))是stackoverflow.com/questions/268272/&hellip中投票最多的。
您只需使用max。
1 2 3
| >>> x = {1:2, 3:6, 5:4}
>>> max(x, key=lambda i: x[i])
3 |
或者只是:
1 2
| >>> max(x, key=x.get)
3 |
有一些方法可以做到这一点,首选的方法是使用:
1 2 3
| 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)。