如何在字典中获取值最大的键?
如何在字典中获取值最大的键?
我有一个字典,其中键为字符串,值为整数。
stats = {'a': 1, 'b': 3000, 'c': 0}
我该如何获取具有最大值的键?在这种情况下,它是\'b\'
。
除了使用反转键值元组的中间列表外,是否有更好的方法?
inverse = [(value, key) for key, value in stats.items()] print(max(inverse)[1])
admin 更改状态以发布 2023年5月21日
你可以使用operator.itemgetter
来实现:
import operator stats = {'a': 1000, 'b': 3000, 'c': 100} max(stats.iteritems(), key=operator.itemgetter(1))[0]
不需要在内存中构建一个新的列表,而是使用stats.iteritems()
。 max()
函数的key
参数是一个计算键的函数,用于确定如何对项目进行排名。
请注意,如果您还有另一个键值对 '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'