4

この関数では、各要素の出現回数をカウントしてdictを返します。例:[a、b、a、c、b、a、c] and return {a:3、b:2、c:2}これを行う方法は?

4

3 に答える 3

6

次に、Counterを使用できます。

from collections import Counter
Counter( ['a','b','a','c','b','a','c'] )

またはDefaultDict

from collections import defaultdict
d = defaultdict(int)
for x in lVals:
    d[x] += 1

また:

def get_cnt(lVals):
    d = dict(zip(lVals, [0]*len(lVals)))
    for x in lVals:
        d[x] += 1
    return d   
于 2012-11-16T03:23:39.313 に答える
1

組み込みのクラスCounterを使用する

import collections
collections.Counter(['a','a','b'])
于 2012-11-16T03:24:51.153 に答える
1

あなたが使用することができますdict.setdefault

In [4]: def my_counter(lis):
    dic={}
    for x in lis:
        dic[x]=dic.setdefault(x,0)+1
    return dic
   ...: 

In [5]: my_counter(['a','b','a','c','b','a','c'])
Out[5]: {'a': 3, 'b': 2, 'c': 2}

またはdict.get

In [10]: def my_counter(lis):
    dic={}
    for x in lis:
        dic[x]=dic.get(x,0)+1
    return dic
   ....: 

In [11]: my_counter(['a','b','a','c','b','a','c'])
Out[11]: {'a': 3, 'b': 2, 'c': 2}
于 2012-11-16T03:36:09.700 に答える