Python collections.Counter



Python Counter is a container that hold count of objects. It is used to count items available or exist in iterables. Counts are allowed to be any integer value including zero or negative counts.

Counter is a subclass of the dictionary. It represents data as a key and value. It inherits all the methods and properties of the dictionary. It allows to perform arithmetic and set operations. It can be used with any iterable which implements iteration protocol.

Syntax

Following is the syntax of the Python Counter

class collections.Counter([iterable-or-mapping])

Parameters

This data type accepts iterable as a parameter.

Return Value

This data type returns counter object.

Initialization of Counter

Counter is initialized by using iterables as the input value. Following are the different ways to initialize the Counter

  • With a sequence of items
  • With a dictionary containing keys and counts
  • With keyword arguments mapping string names to counts

Example

In the following example we have initialized the Counter in different ways −

from collections import Counter
# With sequence of items 
print(Counter(['x','x','z','x','y','z','x','x','z','x']))
# with dictionary
print(Counter({'y':3, 'z':5, 'x':2}))
# with keyword arguments
print(Counter(z=3, x=5, y=2))

Following is the output of the above code −

Counter({'x': 6, 'z': 3, 'y': 1})
Counter({'z': 5, 'y': 3, 'x': 2})
Counter({'x': 5, 'z': 3, 'y': 2})

Example

Following is an basic example of the Counter in Python −

from collections import Counter
# Create a list
tuple1 = ('Python', 'Java', 'Python', 'C++', 'Python', 'Java')
# Count distinct elements and print Counter a object
print(Counter(tuple1))

Following is the output of the above code −

Counter({'Python': 3, 'Java': 2, 'C++': 1})

Counter Values

We can also access all the keys, values and items of a counter using keys(), values() and items() methods.

Example

Here, we have defined the Counter and found its key values, values and items −

from collections import Counter
#defined Counter
my_counter = Counter('xyzmnoxyzm')
#Finding key values
print(my_counter.keys())
#Finding values 
print(my_counter.values())
#Finding items 
print(my_counter.items()) 

Following is the output of the above code −

dict_keys(['x', 'y', 'z', 'm', 'n', 'o'])
dict_values([2, 2, 2, 2, 1, 1])
dict_items([('x', 2), ('y', 2), ('z', 2), ('m', 2), ('n', 1), ('o', 1)])

Methods in Counter

Following are the different methods defined in Counter() class −

Method Function
update() Used to add an element or iterable into existing Counter
total() Compute the sum of counts
most_common() Return a list of the n most common elements and their counts from the most common to the least. If n is omitted or None, most_common() returns all elements in the counter
elements() Return an iterator over elements repeating each as many times as its count. Elements are returned in the order first encountered.
subtract() Elements are subtracted from an iterable or from another mapping (or counter).

Python Counter.update() Method

The update() method in Counter class is used to add the new elements to the counter.

Example

Here, we have created an empty counter and added an elements with update() function and the Counter returns the elements with respective count −

from collections import Counter
#empty counter
var1 = Counter()
#updated with elements
var1.update([2,4,6,2,4,6,2,6])
print(var1)
var1.update([2, 6, 4])
print(var1)

Following is the output of the above code −

Counter({2: 3, 6: 3, 4: 2})
Counter({2: 4, 6: 4, 4: 3})

Python Counter.subtract() Method

The subtract() method in Counter class is used to perform the subtraction operation between the two counters. The subtraction of two counters can be zero or negative value −

Example

Here, we have defined two counters, c1 and c2 and subtracted c2 from c1 −

from collections import Counter
#defined counters
c1 = Counter(A=4, B=3, C=10)
c2 = Counter(A=10, B=3, C=4)
#subtraction of c2 from cl
c1.subtract(c2)
print(c1)

Following is the output of the above code −

Counter({'C': 6, 'B': 0, 'A': -6})

Python Counter.total() Method

The total() method in the Counter class is used to calculate the sum of all element counts within the counter.

Example

Here, we have defined and list and converted to Counter and found the sum of all elements count −

from collections import Counter
list1 = ['a', 'b', 'c', 'a', 'b', 'c', 'a']
count = Counter(list1).total()
print("Total elements of the list :", count)

Following is the output of the above code −

Total elements of the list : 7

Python Counter.most_common() Method

The most_common() method of the Counter class in Python is used to return a list of the n most common elements in a counter. It returns the elements in descending order of their counts, from most common to least common. If the n value is not specified, it will return all elements in the counter.

Example

Following is an example of the most_common() method of Counter −

from collections import Counter
tup1 = (2,56,13,4,2,10,13,2, )
count = Counter(tup1).most_common(2)
print("Most common elements of the tuple :", count)

Following is the output of the above code −

Most common elements of the tuple : [(2, 3), (13, 2)]
python_modules.htm
Advertisements