词典:如何找到元素的最大值

时间:2013-04-12 16:29:45

标签: python python-3.x

给出了......的字典

result={'A - - -': ['ALLY'], '- - A -': ['DEAL'], '- - - A': ['BETA'], '- - - -': ['COOL',    'ELSE', 'FLEW', 'GOOD', 'HOPE', 'IBEX']}

我如何为具有最多元素的键分配变量'Answer'?我试过......

inverse=[(value,key) for key, value in result.items()]
Answer=max(inverse)

但这让我无处可去。由于最大的家庭是['COOL','ELSE','FLEW','GOOD','HOPE','IBEX'],我​​希望能够将' - - - - '分配给'答案'。< / p>

3 个答案:

答案 0 :(得分:4)

max()采用key关键字参数,允许您提供排序功能:

>>> answer, _ = max(result.items(), key=lambda x: len(x[1]))
>>> answer
'- - - -'

这比仅仅为了排序而构建一个额外的列表更有效。

答案 1 :(得分:-1)

您按列表本身排序而不是长度:

inverse = [(len(value), key) for key, value in result.items()]
Answer = max(inverse)[1]

答案 2 :(得分:-2)

import operator
dict(sorted(result.iteritems(), key=operator.itemgetter(1), reverse=True)[:1])

你有最大价值,现在只是分配一些东西吗?