在字典中获取具有最大值的键?

2022-09-05 01:00:03

我有一个字典,其中键是字符串,值是整数。

stats = {'a': 1, 'b': 3000, 'c': 0}

如何获取具有最大值的密钥?在本例中,它是 。'b'


有没有比使用带有反向键值元组的中间列表更好的方法?

inverse = [(value, key) for key, value in stats.items()]
print(max(inverse)[1])

答案 1
max(stats, key=stats.get)

答案 2

您可以使用:operator.itemgetter

import operator
stats = {'a': 1000, 'b': 3000, 'c': 100}
max(stats.iteritems(), key=operator.itemgetter(1))[0]

而不是在内存中使用新列表。该函数的参数是一个函数,用于计算用于确定如何对项目进行排名的键。stats.iteritems()keymax()

请注意,如果您有另一个键值对'd':3000,则此方法将仅返回者中的一个,即使它们都具有最大值。

>>> import operator
>>> stats = {'a': 1000, 'b': 3000, 'c': 100, 'd': 3000}
>>> max(stats.iteritems(), key=operator.itemgetter(1))[0]
'b' 

如果使用 Python3:

>>> max(stats.items(), key=operator.itemgetter(1))[0]
'b'