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

2024-06-16 10:43:21 发布

您现在位置:Python中文网/ 问答频道 /正文

给我一本。。。你知道吗

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'、'flied'、'GOOD'、'HOPE'、'IBEX'],所以我希望能够将'-'指定给'Answer'。你知道吗


Tags: keyanswer元素valueresultelsebetagood
3条回答

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

inverse = [(len(value), key) for key, value in result.items()]
Answer = max(inverse)[1]
import operator
dict(sorted(result.iteritems(), key=operator.itemgetter(1), reverse=True)[:1])

你有你的最大值了,现在给它赋值?你知道吗

^{}采用key关键字参数,该参数允许您提供排序函数:

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

这将比仅仅构建一个额外的列表来排序更有效。你知道吗

相关问题 更多 >