1

次の辞書を前提として、どのキーが最も値が高いかを調べたいと思います。より長い辞書があり、プログラムで(目視検査なしで)どのキーが最も値が高いかを知りたい場合、どうすればそれを実行できますか?私が考えることができる唯一の方法は次のとおりです。

dic = {'attacks': ['kick','puch','slap','elbow'], \
  'defense': ['block','parry','dodge']}

dic = {'attacks':['kick'、'puch'、'slap'、'elbow']、'defense':['block'、'parry'、'dodge']}

key_values_list = []
for key in dic:
    key_name = ''
    num = 0 
    for item in dic[key]:
        num +=1
    key_values_list.append((key,num))

for  k,v in key_values_list:
    print k,v
4

2 に答える 2

5

次のコードは、攻撃というラベルの付いたキーのインスタンスをカウントします。

>>> max(((k, len(v)) for k, v in dic.items()), key=lambda x: x[1])
('attacks', 4)
>>>
于 2012-07-12T09:39:58.013 に答える
5
>>> dic = {'attacks': ['kick','puch','slap','elbow'], 'defense': ['block','parry','dodge']}
>>> max(dic, key=lambda k: len(dic[k]))
'attacks'
于 2012-07-12T09:36:32.453 に答える