2017-10-04 10 views
0

辞書のリストitemsが与えられた場合、という数字が最も大きい辞書をとしたいと思います。より正確には、リストの中にそのindex()を入れておきたいので、後でそのキーの値にアクセスすることができます。 辞書のリストから最も多くのキーを持つ辞書を見つける

は、項目のサイズを取得するにはどのキー(うち複数があるでしょう)、私がやるの最大数:私は(index()または他に)これを修正するにはどうすればよい

max([len(item.keys()) for item in items]) 

へその商品を特定しますか? この最大サイズのであれば十分です。各辞書には、リスト内で常に一意の鍵nameがあります。

+1

numpyがある場合は、 'np.argmax'を使用できます。 –

+2

普通の辞書の場合は 'len(item.keys())'を使わないでください。 'len(item)'がそれを行う方法です。 –

+0

@AnttiHaapala良い点、よく作られています。 – Pyderman

答えて

1

+0

「実際には最大の辞書のインデックスは必要ないと思う」と言われましたが、インデックスを取得することは、厄介な、多段階の方法での達成方法についての私の初心者の考えでした。きちんとした解決策、ありがとう。 'max()'が 'key'引数を持っていることに気付かなかった。 – Pyderman

+0

@Pydermanインデックスが必須でない場合、これは確かにあなたの答えです。それが助けになるなら、この回答を受け入れることを認めてください。 –

4

あなたはargmaxを探しています。 Pythonでは、これはmax + enumerateで行われます。

i, d = max(enumerate(items), key=lambda x: len(x[1])) 
dは、キーの数が最も多い dict

、そしてiは、そのインデックスです。

itemsがあなたの list dictのSです
largest_dictionary = max(items, key=len) 

:あなたが実際に最大の辞書のインデックスを必要としてだけではなく、辞書自体を必要としないと仮定すると、

関連する問題