0

の辞書を考えると...

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'] ですので、'Answer' に '- - - -' を割り当てられるようにしたいと考えています。

4

3 に答える 3

4

max()keyソート関数を指定できるキーワード引数を取ります。

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

これは、並べ替えのためだけに追加のリストを作成するよりも効率的です。

于 2013-04-12T16:35:06.847 に答える
-1

リストの長さではなく、リスト自体で並べ替えています。

inverse = [(len(value), key) for key, value in result.items()]
Answer = max(inverse)[1]
于 2013-04-12T16:31:47.267 に答える