以pythonic方式打印字典中最大值的键[重复]
Posted
技术标签:
【中文标题】以pythonic方式打印字典中最大值的键[重复]【英文标题】:Print the key of the max value in a dictionary the pythonic way [duplicate] 【发布时间】:2012-09-06 06:58:04 【问题描述】:给定一个字典d
,其中键值对由作为键的字符串和作为值的整数组成,我想打印值为最大值的键字符串。
当然,我可以循环d.items()
,存储最大值及其密钥,然后在for
循环之后输出后者。但是有没有更“pythonic”的方式只使用max
函数构造,比如
print max(...)
【问题讨论】:
根据您对 dict 的使用情况,您可能希望切换键和值,让整数具有键,而 dstring 具有值...(当然,如果您从不使用字符串键,则可以这样做...) 交换键和值不是一个好主意,因为值可能根本不是唯一的...... 【参考方案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
不同,在这种情况下不会发生。以上是关于以pythonic方式打印字典中最大值的键[重复]的主要内容,如果未能解决你的问题,请参考以下文章