次の番号のリストがあります。
l = [2L, 14L, 14L, 14L, 11L, 2L, 2L, 11L, 14L, 11L, 14L, 2L, 2L, 14L, ...]
2
数字 (例: ) または複数の数字 (例:2
または5
または)の出現回数を調べるにはどうすればよい7
ですか?
私がやろうとしていた方法はfor
ループでしたが、もっと効率的な方法があるはずです。
次の番号のリストがあります。
l = [2L, 14L, 14L, 14L, 11L, 2L, 2L, 11L, 14L, 11L, 14L, 2L, 2L, 14L, ...]
2
数字 (例: ) または複数の数字 (例:2
または5
または)の出現回数を調べるにはどうすればよい7
ですか?
私がやろうとしていた方法はfor
ループでしたが、もっと効率的な方法があるはずです。
collections.Counter
値を出現回数にマップする辞書を作成します。
>>> from collections import Counter
>>> l = [2L, 14L, 14L, 14L, 11L, 2L, 2L, 11L, 14L, 11L, 14L, 2L, 2L, 14L]
>>> c = Counter(l)
>>> c
Counter({14L: 6, 2L: 5, 11L: 3})
>>> c[14L]
6
>>> l.count(2)
5
パイのようにシンプル。カウントを見つけたい数値のリストがある場合は、たとえば次のように試すことができます。
>>> {n: l.count(n) for n in [2, 5, 7]}
{2: 5, 5: 0, 7: 0}
すべての要素のカウントが必要な場合collections.Counter
は、他の回答で述べたように、 をお勧めします。