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

新手上路,请多包涵

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

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

如何获得具有最大值的密钥?在这种情况下,它是 'b'


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

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

原文由 ricafeal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 711
2 个回答

您可以为此使用 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'

原文由 unbeknown 发布,翻译遵循 CC BY-SA 4.0 许可协议

max(stats, key=stats.get)

原文由 A. Coady 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题