查找字典的最大值和打印键,值对

时间:2015-10-20 23:37:19

标签: python dictionary

{'19': 3, '18': 7}

如果我有一个如上所示的列表,如何找到最大值,然后打印键值对,如:

(['18'], 7)

3 个答案:

答案 0 :(得分:3)

print max(data.iteritems(),key=lambda x:x[-1])

可能?我真的不确定是诚实的

答案 1 :(得分:2)

有更多Pythonic方法可以做这些事情,但我希望这能为您清楚地说明这些步骤。首先我们颠倒字典。找到最大值

data = {'19': 3, '18': 7}
data_rev = dict([(value, key) for (key,value) in data.iteritems()])
print data_rev

max_val = max(data_rev.keys())

如果您想在一个声明中看到它:

out_tuple = ([dict([(value, key) for (key,value) in data.iteritems()])[max(data.values())]], max(data.values()))

答案 2 :(得分:2)

最直接的方法是迭代并找到它:

max_pair = None
for k,v in thedict.items():
   if (max_pair is None) or (v > max_pair[1]):
      max_pair = (k,v)

print max_pair

但标准库提供了更多" pythonic"如何获得相同的信息..

from functools import partial
from operator import itemgetter
print max(thedict.items(), key=partial(itemgetter, 1))

这假设您只想获得最大值出现的第一个键。如果您希望所有显示最大值的键都必须在两次传递中执行(一次找到最大值,一次找到所有键)。

max_val = max(thedict.values())
max_pair = (tuple(k for k in thedict if thedict[k] == max_val), max_val)