you can use 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}
or 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}
source share