環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Pythonのリストで要素の重複度を取得する(countを使う)

最終更新日 2023.02.18

Python のリストは同じ要素を複数個もつことを許しています。リスト要素の重複度は count で取得します。

a = [1, 2, 3, 3, 4]
b = ['apple', 'apple', 'apple', 'lemon', 'peach']

p = a.count(3)
q = b.count('apple')
r = a.count(9)

print(p) # 2
print(q) # 3
print(r) # 0

a は 3 を 2 つ、b は apple を 3 つ持っているので、2, 3 と出力されています。しかし a は 9 を要素に持たないので、a.count(9) は 0 です。

Python の count はここに注意:

  • PHP のプログラマーは count をリストの要素数と考えないようにしよう
  • 存在しないときは 0 が返ってくる

リスト内リストの重複度を調べてみる

Python の強みはリストの要素をリストにした「リスト内リスト」を簡単につくれること。「リスト内リスト」の重複度を調べてみましょう。

x = [[1, 2], [1, 2], ['a'], 3, 'a']

c1 = x.count(1)
c2 = x.count([1, 2])

c3 = x.count('a')
c4 = x.count(['a'])

print(c1) # 0
print(c2) # 2
print(c3) # 1
print(c4) # 1

面白いことに 1 の重複度は 0 になりました。1 は [1, 2] というリストの要素ですが、x の直接的な要素ではありません。同じ理由で a の重複度は 1 になります。a と ['a'] はまったく違うオブジェクト(インスタンス)だからです。