2
異なる値の数をカウントするには、dict books
に値の逆出力の出現回数に応じて表示されます。このような辞書の並べ替えと並べ替え
books = {
123457889: 'A',
252435234: 'A',
434234341: 'B',
534524365: 'C',
354546589: 'D',
146546547: 'D',
353464543: 'F',
586746547: 'E',
511546547: 'F',
546546647: 'F',
541146127: 'F',
246546127: 'A',
434545127: 'B',
533346127: 'E',
544446127: 'F',
546446127: 'G',
155654627: 'G',
546567627: 'G',
145452437: 'H',
}
出力:
'F': 5,
'A': 3,
'G': 3,
'B': 2,
'D': 2,
'E': 2,
'C': 1,
'H': 1
が、私はそれを試してみました:
import pprint
# to get the values from books
clist = [v for v in books.values()]
# values in books as keys in count,
count = {}
for c in clist:
count.setdefault(c, 0)
count[c] += 1
pprint.pprint(count)
しかし、dictのソートができませんでした。
OPを表示する方法を正確に*表示するには、次のように '.most_common()'を使用します:counts.most_common()内のcount:count(count)値)+ "':" + str(count)+ "、") ' –
@ViníciusAguiar確かに。私は質問の最後に追加しましたが、この場合は 'most_common'は必要ありません。出力がコレクション全体のものになることを見て、単純に 'items'メソッドを使うだけで十分でしょう。 – idjaw
クール!はい、私は 'most_common'を使用しました。なぜなら、目的の出力ではアイテムがソートされていて、これがソートされた最も効率的な方法だとわかっているからです。 –