2017-02-02 17 views
2

10日から私は問題を抱えていますが、書籍やインターネット上で解決策を見つけようとしましたが、見つけられませんでした。辞書の最大要素のキーをPython言語で見つける方法を教えてください。

animals = { 'a': ['lion'], 'b': ['baboon'], 'c': ['goat']} 
animals['d'] = ['donkey'] 
animals['d'].append('elephant') 
animals['d'].append('swan') 

と私は最長のリストに関連付けられているキーを見つけるための方法largestを記述する必要があります。ここではそこに例があります。この例では、出力は

largest(animals) 
'd' 
+0

あなたの質問で「最大」の定義に関して、より具体的なことができますか?私はあなたが辞書の最大長のリストに関連付けられているキーをしたいと思います。 –

答えて

4

である必要があります。max()を使用して、キー間の比較に使用されるカスタム関数を使用します。 max関数にkey引数を使用

animals = { 'a': ['lion'], 'b': ['baboon'], 'c': ['goat']} 
animals['d'] = ['donkey'] 
animals['d'].append('elephant') 
animals['d'].append('swan') 

largest = max(animals, key=lambda k: len(animals[k])) 

要素が比較される基準を変更することを可能にします。 この場合、辞書のキーは、このキーの下に格納されたリストの長さによって辞書animalsに比較されます。

+0

あなたのとても素早い答えをありがとうございました。実際に私はPythonのnoiceプログラマーではありません。私は答えを得たが、どうしてここに来るのかわからない。将来、Pythonをもっと学ぶと、私は知っているだろう。 –

1

辞書があまり大きくない場合は、辞書を2つのキーと値のリストに分割します。これは非常に効率的な方法です。 次に、max()関数を使用してmax要素を見つけることができます。

def largest(animals): 
    keys = list(animals.keys()) 
    vals = list(animals.values()) 
    return keys[vals.index(max(vals))] 
関連する問題