2

さまざまな数のキーを持つことができる辞書があります。キーの値は数字のリストです。これらの各リストを比較して、リスト内のすべてのアイテムの最大値であるリストを取得したいと思います。

組み込みのmax()関数は、以下の方法で渡した場合、すべてのアイテムの最大値を提供します。

max(lista、listb、listc)

リストの数はさまざまで、私の辞書は次のようになります。

myDict = {1:lista、2:listb:3:listc、...}

私はこのようなことを考えていました:

maxlist = max(myDict.keys()のアイテムの場合:myDict [item])

しかし、これはうまくいかないと思います。助けてください!

4

3 に答える 3

1

ジェネレータ式の正しい構文は次のようになります。

maxlist = max(myDict[item] for item in myDict.keys())

この場合、myDict.values()そもそも使用する方がはるかに簡単です。

maxlist = max(myDict.values())
于 2012-04-13T19:50:06.213 に答える
1

どうですか:

>>> p = {1: [2,3], 4: [5,6,7]}
>>> max(p.values())
[5, 6, 7]

ディクショナリの場合values()、値を返すため、ディクショナリ内のすべてのキー/値を明示的に繰り返す必要はありません。

于 2012-04-13T19:50:21.220 に答える
0

辞書スパムを考えると、次のように最大値を見つけることができます

max(spam.values(),key=len)

今、あなたの質問は、あなたが見つけたい最大のものが何であるかという意味で少し曖昧です

上記は、最大要素を持つリストの長さを返します(別名長さは最大です)

代わりに、すべてのリストの最大要素(単一の最大要素)を取得したい場合は、次のこともできます。

max(itertools.chain(*spam.values()))

代わりに、あなたができる最大の価値を持つリストを見つけたいなら

max(spam.values())
于 2012-04-13T19:51:17.400 に答える