【发布时间】:2013-11-15 19:29:40
【问题描述】:
我相信这很容易:
假设我有以下字典:
foo = { a: 3, b: 10, c: 5 }
获得值 10 的最有效(和最干净)的方法是什么
谢谢
【问题讨论】:
标签: python python-2.7
我相信这很容易:
假设我有以下字典:
foo = { a: 3, b: 10, c: 5 }
获得值 10 的最有效(和最干净)的方法是什么
谢谢
【问题讨论】:
标签: python python-2.7
如果您只关心找到最大值,而不关心与其相关的键,那么您只需访问 dict 的值(尽管链接的帖子 Getting key with maximum value in dictionary? 绝对值得一读)
在 Python 2.x 上:
max(foo.itervalues())
在 Python 3.x 上:
max(foo.values())
【讨论】:
假设你有以下 Counter 对象:
from collections import Counter
foo = Counter({ "a": 3, "b": 10, "c": 5 })
然后您可以使用.most_common() 方法获取按从多到少排序的元组列表:
>>> foo.most_common()
[('b', 10), ('c', 5), ('a', 3)]
要获得 max,只需抓住第一个元素:
foo_max = foo.most_common()[0]
【讨论】:
collections.Counter - 即使那样,most_common 也不是为此而设计的......这很像sorted(foo.values(), reverse=True)[0]
为了得到字典的最大值。你可以这样做:
>>> d = {'a':5,'b':10,'c':5}
>>> d.get(max(d, key=d.get))
10
说明:
max(d, key=d.get) => 获取具有最大值的键,其中 d 是字典
d.get => 获取与该键关联的值
希望这会有所帮助。
【讨论】: