【问题标题】:Print the key of the max value in a dictionary the pythonic way [duplicate]以pythonic方式打印字典中最大值的键[重复]
【发布时间】:2012-09-06 06:58:04
【问题描述】:

给定一个字典d,其中键值对由作为键的字符串和作为值的整数组成,我想打印值为最大值的键字符串。

当然,我可以循环d.items(),存储最大值及其密钥,然后在for 循环之后输出后者。但是有没有更“pythonic”的方式只使用max 函数构造,比如

print max(...)

【问题讨论】:

  • 根据您对 dict 的使用情况,您可能希望切换键和值,让整数具有键,而 dstring 具有值...(当然,如果您从不使用字符串键,则可以这样做...)
  • 交换键和值不是一个好主意,因为值可能根本不是唯一的......

标签: python max


【解决方案1】:
print max(d.keys(), key=lambda x: d[x]) 

甚至更短(来自评论):

print max(d, key=d.get)

【讨论】:

  • max(d, key=d.get)怎么样
  • 两者似乎都有效! :-) 谢谢你:我怀疑 python 可能会提供一种简洁的方法来处理这个问题! - 关于这两种解决方案,第二个版本在我看来更容易记住。它对第一个有任何警告吗?
  • @halloleo 我不这么认为。 keys() 只是多余的,get 是一种方法,其行为仅与 dict 中不存在的项目的 lambda 不同,在这种情况下不会发生。
猜你喜欢
  • 2016-01-19
  • 2016-02-11
  • 2017-12-23
  • 2013-02-06
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
相关资源
最近更新 更多