I am new to Python. I am trying to find a simple way of getting a count of the number of elements repeated in a list e.g.

MyList = ["a", "b", "a", "c", "c", "a", "c"] 

Output:

a: 3 b: 1 c: 3 
0

5 Answers

You can do that using count:

my_dict = {i:MyList.count(i) for i in MyList} >>> print my_dict #or print(my_dict) in python-3.x {'a': 3, 'c': 3, 'b': 1} 

Or using collections.Counter:

from collections import Counter a = dict(Counter(MyList)) >>> print a #or print(a) in python-3.x {'a': 3, 'c': 3, 'b': 1} 
10

Use Counter

>>> from collections import Counter >>> MyList = ["a", "b", "a", "c", "c", "a", "c"] >>> c = Counter(MyList) >>> c Counter({'a': 3, 'c': 3, 'b': 1}) 

This works for Python 2.6.6

a = ["a", "b", "a"] result = dict((i, a.count(i)) for i in a) print result 

prints

{'a': 2, 'b': 1} 
1
yourList = ["a", "b", "a", "c", "c", "a", "c"] 

expected outputs {a: 3, b: 1,c:3}

duplicateFrequencies = {} for i in set(yourList): duplicateFrequencies[i] = yourList.count(i) 

Cheers!! Reference

1
In [2]: MyList = ["a", "b", "a", "c", "c", "a", "c"] In [3]: count = {} In [4]: for i in MyList: ...: if not i in count: ...: count[i] = 1 ...: else: ...: count[i] +=1 ...: In [5]: count Out[5]: {'a': 3, 'b': 1, 'c': 3}