目的
投票結果を DB に貯めて、その結果を一位から取得したい。
DB 構成は、
Id | Recipe |
---|---|
int | str |
というシンプルな感じです。
ここからレコードの recipe の値を、[a, b, c, b, ...]
と言ったリストに直した際、
「一番投票数の多かったもの」や「投票数が多かった順の要素のリスト」が欲しい。
TL;DR
collections
を使えば比較的簡単にできます。
要素のカウントは collections が便利
import collections
votes_list = [a, b, c, b]
c = collections.Counter(votes_list)
# Counter({'b': 2, 'a': 1, 'c': 1})
# `要素`: `出現回数`
recipe = c.most_common()
# [('b', 2), ('a', 1), ('c', 1)]
# 出現回数が多い順に並べ替えてくれる
recipe = c.most_common()[0][0]
# b
参考にさせていただいたもの
お世話になりました。
collections — コンテナデータ型 — Python 3.8.1 ドキュメント
Python の Counter でリストの各要素の出現個数をカウント | note.nkmk.me