Python中字典最大值的关键字

4
我有一个整数字典“scores”,我想找到最高值的键。我使用了以下代码:
key = max(scores, key=scores.get)

然而,这只返回一个键。在最高值中如何处理并列情况?我只得到一个数字。如果有并列的情况,它是哪个键?如何获取所有最高值的键?

感谢您的帮助。

4个回答

9
例如,您可以运行以下内容:
max_value = max(scores.values())
keys = [ i for (i,v) in scores.iteritems() if v == max_value ]

"keys" 现在将保存与最大值相对应的所有键。

1
那可能是最好的方式。 - Tim Pietzcker
1
keys = [i for (i,v) in scores.items() if v == max_value] 不会更快吗? - Pierre GM
很好。事实上,使用scores.iteritems(),字典的循环速度会快两倍。我会编辑我的答案。谢谢! - Pascal Bugnion

1

max 函数返回一个值。你可以像这样使用它:

key = max(scores, key=scores.get)
keys = [k for k in scores if scores[k] == scores[key]]

编辑:已修复


那行不通。max_value将包含与最大值关联的密钥,而不是值本身。 - Tim Pietzcker
我认为你的意思是 if scores[k] == scores[max_value]。我非常确定 max 函数返回值的索引。 - Double AA

1
scores = dict(a=1,b=2,c=3,d=4,e=5,f=5)
maxscr = max(scores.values())

maxscrs =  [scr for scr in scores if scores[scr]== maxscr]

给出:

 ['e','f']

1
max_value = max(scores, key=scores.get)
keys = [score for score in scores if scores[score] == max_value]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接