The collections module has container datatypes (beyond the built-in types list, dictionary, and tuple) and contains many useful data structures that you can use to store information in memory. The counter keeps the count of the number of items in the container.
For using counters, follow the steps below:
Import counters from collection module
from collections import Counter
Make an instance of the counter
x
can be a list, dictionary, array, tuple or any other data structure available in Python.Print output
The following code explains how counters can be initialized using lists, tuples, dictionary, and strings. In the case of strings, the counter gives the frequency of every literal in the string whereas in case of a list, tuple, and dictionary it gives the occurrence of each item in the respective container.
from collections import Counter#define a listlist=[1,2,3,4,5,6,7,2,3,2,3]#make instance of Counterc=Counter(list)print("list:",list,"\n")print(c,"\n")#define a tupletuple = ("apple", "banana", "cherry","orange","apple")#make instance of Counterc1=Counter(tuple)print("\ntuple:",tuple,"\n")print(c1,"\n")#define a stringstr="Python Programming"#make instance of Counterc2=Counter(str)print ("String:",str,"\n")print(c2,"\n")#define a dictionarydict={'a':3,'b':2,'c':1}#make instance of Counterc3=Counter(dict)print("Dictionary:",dict,"\n")print(c3,"\n")
An empty counter can be declared and updated using the statement Counter.update
. The following code shows how it can be done:
from collections import Counter#initialize with an empty Counterc=Counter()#update Counterc.update("1")print (c)c.update("1")print(c)
To access a particular item count write the counter name and specify the item name enclosed within square brackets. The following code shows how it can be done:
from collections import Counter# define a listlist=[1,2,3,4,2,2,1,1,1]# make the instance of Counterc=Counter(list)# print the count of item 1 in the listitem=1print("Item:",c[item])
To get the elements with the highest frequencies i.e., n most common elements, we call the method most_common()
. The following code shows how it can be done:
from collections import Counter# define a listlist=[1,2,3,4,2,2,1,1,1]# make the instance of Counterc=Counter(list)#print the most common elementprint("Item:",c.most_common)
Since python counters are mutable, it is possible to reassign a value to an item.
from collections import Counter# define a listlist=[1,2,3,4,2,2,1,1,1]# make the instance of Counterc=Counter(list)# reassign the value of 1c[1]=3#print the value of counterprint(c)
To clear a counter value, call the method of counter counter.clear()
. The following code shows how it can be done:
from collections import Counter# define a listlist=[1,2,3,4,2,2,1,1,1]# make the instance of Counterc=Counter(list)print("Initilially :",c)# clear the value of counterc.clear()#print the value of counter after clearing itprint("clear() :",c)
All basic arithmetic and set operations can be applied on two counters.
Note: If we use operators +, - . It does not give output if the value is negative. So we use the built-in function
add
andsubtract
for adding and subtracting values.
The following code shows how it can be done:
from collections import Counter# define a listlist1=[1,2,3,4,2,2,1,1,1]list2=[1,2,3,4,4,5,9,8,3]# make the instance of Counterc1=Counter(list1)c2=Counter(list2)print("c1:",c1)print("c2:",c2)c1.__add__(c2)print("Add two counter",c1)c1.subtract(c2)print("Subtract two counters",c1)c1&c2print("Intersection of c1 & c2",c1)