查找字典的最大值并打印键、值对[重复]

Posted

技术标签:

【中文标题】查找字典的最大值并打印键、值对[重复]【英文标题】:Find max and print key, value pair of a dictionary [duplicate] 【发布时间】:2016-01-19 19:39:04 【问题描述】:
'19': 3, '18': 7

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

(['18'], 7)

【问题讨论】:

您之所以在列表中有'18',是因为您希望在多个键具有相同最大值的情况下查看多个键吗? 哦,我明白了,谢谢@zehnpaard 在字里行间的阅读方式... 【参考方案1】:
print max(data.iteritems(),key=lambda x:x[-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()))

【讨论】:

【参考方案3】:

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

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)

【讨论】:

以上是关于查找字典的最大值并打印键、值对[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在字典中查找最大值[重复]

用键打印dict中的最大值[重复]

python练习-查找出字典中值最大的键值对

在字典中查找重复值并打印重复元素的键

在字典中查找重复列表并打印重复列表的键

为字典python中的每个键选择最大值