Count Occurrences of a character in String in Python

In this article, we will learn to count the number of occurrences of a character in a given string using Python.

Table Of Contents

What are Strings ?

A String is an array of bytes, representing Unicode characters enclosed in single, double or triple quotes. The Enclosed characters can be any digit, alphabets or special symbols. A String is just a normal text and is human readable. Strings in Python are immutable, means that can not be changed.

Now we will look at various methods through which we can count the number of occurrences of a character in a string.

Count occurrences of a character in string using count():

First method that we will learn is count() method of string class. It takes a character as an argument and returns the number of occurrence of the given character in the calling string object.

It is the most simple method, but its drawback is, that it counts upper case and lower case alphabets as different characters.

For example : If string is “He is Standing below a Tree”. There are two “t”, one is in Upper case and other in lower. Lets see what is the outputs :

CODE :

string_var = 'He is Standing below a Tree'

print( string_var.count('t') )

OUTPUT :

1

You can see in above code, number of occurrences of character ‘t’ is 1, but the number of ‘t’ (both in lower and upper case) is 2. So this method can be used to count the occurrence of character in a string but it counts upper and lower case separately.

Count occurrences of a character in string using collections.counter():

Next method through which we can accomplish our job is by using the counter() method of Collections module.

The Collections module of python, provides different types of containers. Which provides an aleternative way to contain objects and iterate over them. It provides us different types of containers such as : Counters, ChainMap, DefaultMap, etc..

We will be using counter(). It is a dictionary subclass which sotres the elements as dictionary keys and their occurrence is stored as their values. It returns zero for items that are not present. Lets see an example.

CODE :

from collections import Counter

string_var = 'He is Standing below a Tree'

count = Counter(string_var) 

# this will print dict count
print(count)  

# this will print number of occurrence of char e
print('occurrence of alphabet e',count['t'])

OUTPUT :

Counter({' ': 5, 'e': 4, 'i': 2, 'a': 2, 'n': 2, 'H': 1, 's': 1, 'S': 1, 't': 1, 'd': 1, 'g': 1, 'b': 1, 'l': 1, 'o': 1, 'w': 1, 'T': 1, 'r': 1})
occurrence of alphabet e 1

In code above, the objective is to find the number of occurrences of char e in variable str_var. In variablr count , the Counter() method of Collections module has been initalized and now count variable stores a dictionary with alpahbets as key and their occurrence count as value. It also counts upper and lower case alphabets separately.

Count occurrences of a character in string using re.findall() :

Next method that we will be using to find the occurrence of a given char is findall() method of re module. The re stands for Regular Expression, which comes bundled with python library that uses backslash character (‘\’) to indicate special forms. The re.findall() scans the given string from left to right and checks if the given string has a specified pattern which may be in the form of digits or any other data type. Here we will use findall() and len() method to print the occurrence of the given string.
See an Example below.

EXAMPLE :

import re 

string_var = 'He is Standing below a Tree'

occurrence = re.findall('e',string_var) 

# this will print list occurrence with all e chars
print(occurrence) 

# this will print the count of occurrences
print(len(occurrence)) 

OUTPUT :

['e', 'e', 'e', 'e']
4

In example above, the findall() method of the re module has been used to count the occurrence of char t in var string_var. Here, re.findall() returns strings in a list and len() method counts the length of list. This way we can find how many times the given char is in the string. This method also counts upper case and lower case separately.

Count occurrences of a character in string using defaultdict()

The defaultdict() method comes with the collections module in Python. Its functionality is similar to dictionary class, and it stores chars as keys and their occurrence count as values.It also provides a default value for the key that never exists. Lets see an example :

CODE :

from collections import defaultdict

string_var = 'He is Standing below a Tree'

occurrence = defaultdict(int)

for i in string_var:
    occurrence[i] += 1

print(occurrence['e'])

OUTPUT :

4

In code above you can see defaultdict() method has been used to count the occurrence of the char ‘e’ in variable string_var. It also counts upper case and lower case separately.

Using using pandas.series

In this method we will be using the series.value_count() of Pandas package to count the number of occurrences of a character in a given string. Pandas is a data analysis tool widely used. Here we will be using pandas series, which is a 1-D ndarray with axis labels.

pandas.series.value_counts() reurns a sereis with counts of unique values in descending order and the first element is always the most occuring element.

SYNTAX : pd.Series.value_counts(normalize,sort,ascending,bins,dropna)

PARAMETER : It recieves five parameters :

  • normalize : If true this returns the frequency of unique values.Default value is False.
  • sort : Sort by the given values.Default value is True
  • ascending : Sort in ascending order.Default value is False.
  • bins : Default value is None/
  • dropna : Doesn’t includes count of NaN.

Lets See an example of this method :

CODE :

import pandas as pd

string_var = 'He is Standing below a Tree'

print( pd.Series(list(string_var)).value_counts() )

OUTPUT :

     5
e    4
i    2
n    2
a    2
l    1
T    1
S    1
s    1
r    1
o    1
H    1
g    1
b    1
t    1
d    1
w    1
dtype: int64

In code and Output above, you can see series.value_count() method of pandas package has been used to count the occurrence of a given char in a string. This method has returned all the occurrences of all characters in a Series object.

Summary

So you have seen five different methods through which we can count the number of occurrences of a character in a string. All the methods above count upper case and lower case methods separately. The most easy method is count() method because it recieves a string as a parameter and returns the number of occurrence. For most detail count and values you can use sereies.count_values() method of pandas package which is widely used for data analysis.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top