前提・実現したいこと
辞書の2つのkeyを使いvalueを小さいもの順に並べたい。
今dct変数に
{‘A’:{‘a’:0.02,’b’:0.03,’c’:0.01,’d’:[0.04,0.05]},‘B’:{‘a’:0.4,’b’:0.2,’c’:0.8,’e’:0.9},‘C’:{‘a’:0.1,’b’:0.07,’h’:0.6,’j’:0.9},‘D’:{‘h’:1.2,’j’:1.5,’k’:[1.3,1.8],’l’:1.8},‘E’:{‘o’:11,’p’:12,’q’:16,’r’:18}}
という辞書がある。
このdct辞書のA・B・C・Dの要素のvalueの中の入れ子の辞書のvalueを小さい順に並べたい。そして、入れ子の辞書のvalueがリスト型のもの(例えば、Aのvalueの’d’:[0.04,0.05]やのvalueの’k’:[1.3,1.8])はソートに含めない。
例えば、
Aの辞書をソートするなら、
’c’:0.01、‘a’:0.02、’b’:0.03という順にソートされる。
最終的なアウトプットはprint文で、
A:’c’:0.01 ‘a’:0.02 B:’b’:0.2 ‘a’:0.4 ・ ・ ・
のように小さいものの上位2つまでを出力させたい。
発生している問題・エラーメッセージ
特にエラーは発生していない。
該当のソースコード
for key,value in dct.iteritems(): if type(value) == list: for k, v in sorted(value.items(), key=lambda x: x[1]): print(str(k) + ": " + str(v))
のように書けばできると思ったが、小さいものの上位2つを取ってくる方法がわからなかった。
試したこと
上記のコードの実行
回答2件
あなたの回答
tips
プレビュー