2

次の番号のリストがあります。

l = [2L, 14L, 14L, 14L, 11L, 2L, 2L, 11L, 14L, 11L, 14L, 2L, 2L, 14L, ...]

2数字 (例: ) または複数の数字 (例:2または5または)の出現回数を調べるにはどうすればよい7ですか?

私がやろうとしていた方法はforループでしたが、もっと効率的な方法があるはずです。

4

3 に答える 3

5

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
于 2013-03-07T23:42:22.260 に答える
5
>>> l.count(2)
5

パイのようにシンプル。カウントを見つけたい数値のリストがある場合は、たとえば次のように試すことができます。

>>> {n: l.count(n) for n in [2, 5, 7]}
{2: 5, 5: 0, 7: 0}

すべての要素のカウントが必要な場合collections.Counterは、他の回答で述べたように、 をお勧めします。

于 2013-03-07T23:42:47.793 に答える