前提・実現したいこと
言語はpythonで、実現したいことは,文字列を辞書式で格納しているリストを、Counterを用いて、挨拶の出現頻度順に並び替えたいです。
例えば、以下のコードだと(こんにちは:3,ニーハオ:3,アニョハセヨ:2)のような実行結果を得たいです。
発生している問題・エラーメッセージ
以下のようなプログラムを作ったのですが、aは挨拶、bは別れる時の言葉でリストを格納しており、実行したのですが、以下のように、文字列ではなく、文字の頻度順に並び替えられました。
これを、文字列の並び替えをできるようにしたいです。
#以下は下記のプログラムを動かしたときの実行結果 こ,1 ん,1 に,1 ち,1 は,1 こ,1 ん,1 に,1 ち,1 は,1 ニ,1 ー,1 ハ,1 オ,1 ア,1 ニ,1 ョ,1 ハ,1 セ,1 ヨ,1 ニ,1 ー,1 ハ,1 オ,1 こ,1 ん,1 に,1 ち,1 は,1 ニ,1 ー,1 ハ,1 オ,1 ア,1 ニ,1 ョ,1 ハ,1 セ,1 ヨ,1``` ### 該当のソースコード from collections import Counter #リストの用意 j = [{'a':'こんにちは','b':'さようなら'},{'a':'こんにちは','b':'グッバイ'},{'a':'ニーハオ','b':'ザイジアン'},{'a':'アニョハセヨ','b':'アンニョンヒカセヨ'},{'a':'ニーハオ','b':'ザイジアン'},{'a':'こんにちは','b':'グッバイ'},{'a':'ニーハオ','b':'グッバイ'},{'a':'アニョハセヨ','b':'さようなら'}] for i in j: counter = Counter(i.get('a')) #挨拶別の頻度を格納 for word,count in counter.most_common(): print(f'{word},{count}')```
python
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/12 02:47