在字典中获取具有最大值的键?
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])
我有一个字典,其中键是字符串,值是整数。
stats = {'a': 1, 'b': 3000, 'c': 0}
如何获取具有最大值的密钥?在本例中,它是 。'b'
有没有比使用带有反向键值元组的中间列表更好的方法?
inverse = [(value, key) for key, value in stats.items()]
print(max(inverse)[1])
max(stats, key=stats.get)
您可以使用:operator.itemgetter
import operator
stats = {'a': 1000, 'b': 3000, 'c': 100}
max(stats.iteritems(), key=operator.itemgetter(1))[0]
而不是在内存中使用新列表。该函数的参数是一个函数,用于计算用于确定如何对项目进行排名的键。stats.iteritems()
key
max()
请注意,如果您有另一个键值对'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'