Pythonの言語学習の過程で、標準ライブラリの範疇で実施できるコーディングtipsをメモ。
実務ではNumPyやCounterなどの便利なライブラリで一撃かもしれないため、かなり基礎的かつ遠回りな書き方になると思われます。
リストの値の出現回数をカウントする
2020.03.15
forで回す際にわざわざrangeの範囲指定をしていたのを修正
for i in range(0, len(origin_list)):
origin_list = [1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 1, 2, 1]
counter_dict = dict.fromkeys(list(set(origin_list)), 0)
for value in origin_list:
counter_dict[value] += 1
# 結果
# {1: 5, 2: 4, 3: 3, 4: 2, 5: 1}
結果を格納するディクショナリの初期化を行います。
元リストの値をkeyにするあたり一度ユニークな値だけに絞ります。
ここでは一度ディクショナリに格納することで重複を取り除き再度リスト化しています。
list(set(origin_list))
作成したディクショナリのvalueを初期化するためにdict.fromkeysを使って一括初期値設定します。
counter_dict = dict.fromkeys(リスト, 初期値)
あとは元リストをカウントアップするだけ。
for value in origin_list:
counter_dict[value] += 1