How do you find occurrences in a string in python?

In this tutorial, we will learn about the Python String count() method with the help of examples.

The count() method returns the number of occurrences of a substring in the given string.

Example

message = 'python is popular programming language'

# number of occurrence of 'p' print('Number of occurrence of p:', message.count('p'))

# Output: Number of occurrence of p: 4


Syntax of String count

The syntax of count() method is:

string.count(substring, start=..., end=...)

count() Parameters

count() method only requires a single parameter for execution. However, it also has two optional parameters:

  • substring - string whose count is to be found.
  • start (Optional) - starting index within the string where search starts.
  • end (Optional) - ending index within the string where search ends.

Note: Index in Python starts from 0, not 1.


count() Return Value

count() method returns the number of occurrences of the substring in the given string.


Example 1: Count number of occurrences of a given substring

# define string
string = "Python is awesome, isn't it?"
substring = "is"

count = string.count(substring)

# print count print("The count is:", count)

Output

The count is: 2

Example 2: Count number of occurrences of a given substring using start and end

# define string
string = "Python is awesome, isn't it?"
substring = "i"

# count after first 'i' and before the last 'i'

count = string.count(substring, 8, 25)

# print count print("The count is:", count)

Output

The count is: 1

Here, the counting starts after the first i has been encountered, i.e. 7th index position.

And, it ends before the last i, i.e. 25th index position.

In this post, you’ll learn how to use Python to count the number of occurrences in a string. You’ll learn four different ways to accomplish this, including: the built-in string .count() method and the fantastic counter module.

Knowing how to do this is an incredibly useful skill, allowing you to find, say, duplicate values within a string or deleting unwanted characters (such as special characters).

The Easy Solution: Using String .count()

>>> a_string = 'the quick brown fox jumps over the lazy dog'
>>> print(a_string.count('o'))
4

  • Count Number of Occurrences in a String with .count()
  • Count Number of Occurrences in a Python String with Counter
  • Use Regular Expressions (Regex) to Count Occurrences in a Python String
  • Use a For Loop to Count Occurrences in a Python String
  • Conclusion

One of the built-in ways in which you can use Python to count the number of occurrences in a string is using the built-in string .count() method. The method takes one argument, either a character or a substring, and returns the number of times that character exists in the string associated with the method.

This method is very simple to implement. In the example below, we’ll load a sample string and then count the number of times both just a character and a substring appear:

>>> a_string = 'the quick brown fox jumps over the lazy dog'
>>> print('o appears this many times: ', a_string.count('o'))
>>> print('the appears this many times: ', a_string.count('the'))

o appears this many times:  4
ui appears this many times:  2

In the example above you used the built-in string .count() method to count the number of times both a single character and a string appeared in a larger string.

Count Number of Occurrences in a Python String with Counter

In order to find a more flexible and efficient way to count occurrences of a character in a Python string, you can also use the Counter object from the built-in collections module. The module provides a number of help classes to work with, well, collections of different items.

In this case, our collection will be a string: 'the quick brown fox jumps over the lazy dog'.

from collections import Counter

a_string = 'the quick brown fox jumps over the lazy dog'
collection = Counter(a_string)

print(collection)

# Returns: Counter({' ': 8, 'o': 4, 'e': 3, 't': 2, 'h': 2, 'u': 2, 'r': 2, 'q': 1, 'i': 1, 'c': 1, 'k': 1, 'b': 1, 'w': 1, 'n': 1, 'f': 1, 'x': 1, 'j': 1, 'm': 1, 'p': 1, 's': 1, 'v': 1, 'l': 1, 'a': 1, 'z': 1, 'y': 1, 'd': 1, 'g': 1})

What we’ve accomplished in the code above is the following:

  1. We imported Counter from the collections module
  2. We then assigned our string to the variable a_string
  3. We passed the string into a Counter object and called it collection
  4. Finally, we printed the new collection object

What you can see is that what’s returned is a Counter object. We can confirm this by running print(type(collection)) which returns .

What’s great about this class is that it contains a dictionary-like element that contains occurrences of every iterable item in the item that was passed in.

What this means is that we can access the occurrences of different items in our object by passing in a dictionary accessor.

In the example below, let’s see how we can see how often the letters a and e occur:

>>> print(collection['a'])
>>> print(collection['e'])

1
3

This is the magic of the Counter class: it lets you easily access the count of occurrences in Python iterables, such as string.

Check out some other Python tutorials on datagy, including our complete guide to styling Pandas and our comprehensive overview of Pivot Tables in Pandas!

Use Regular Expressions (Regex) to Count Occurrences in a Python String

You can also use regular expressions (regex) to count the number of occurrences within a Python string. This approach is a little overkill, but if you’re familiar with regex, it can be an easy one to implement!

We’ll use the regular expression module, specifically the .findall() method to load the indices of where the character or substring occurs. Finally, we’ll use Python’s built-in len() function to see how often the character or substring occurs.

Let’s see how this works:

>>> import re

>>> a_string = 'the quick brown fox jumps over the lazy dog'
>>> print(len(re.findall('o', a_string)))

4

We can see that this approach is a bit of an odd way of doing things, especially when compared to the two methods above, covering the built-in .count() method and the built-in Counter class from collections.

Finally, let’s see how we can count occurrences using a for loop.

Use a For Loop to Count Occurrences in a Python String

Using a for loop in Python to count occurrences in a string is a bit of a naive solution, but it can come in handy at times.

The way it works, is that lists are items which you can iterate over (or, often called, iterables), meaning you can loop over each character in a string and count whether a character occurs or not.

Let’s implement the example below and then take a look at how we’ve accomplished everything:

a_string = 'the quick brown fox jumps over the lazy dog'

count_o = 0

for character in a_string:
    if character == 'o':
        count_o += 1
    else:
        pass

print(count_o)

# Returns: 4

What we’ve done here is:

  1. Initialized a new list
  2. Set the variable count_o to 0
  3. Looped over each character in the string and assessed if it’s equal to o. If it is, we increase the count_o variable by 1. Otherwise, we do nothing.

This solution works, but it’s a bit tedious to write out and it’s not very fast for larger string.

Conclusion

In this post, you learned how to use Python to count occurrences in a string using four different methods. In particular you learned how to count occurrences in a string using the built-in .count() method, the Counter class from collections, the .findall() method from regular expression’s re, as well as how to use a for loop.

If you want to learn more about the Counter class, check out the official documentation here.

How do you find the occurrence of a string in a string Python?

The finditer function of the regex library can help us perform the task of finding the occurrences of the substring in the target string and the start function can return the resultant index of each of them.

How do you find the occurrence of a string?

Approach: First, we split the string by spaces in a. Then, take a variable count = 0 and in every true condition we increment the count by 1. Now run a loop at 0 to length of string and check if our string is equal to the word.

How do you check for occurrences of characters in a string?

There are many ways for counting the number of occurrences of a char in a String. Let's start with a simple/naive approach: String someString = "elephant"; char someChar = 'e'; int count = 0; for (int i = 0; i < someString. length(); i++) { if (someString.

How do you find the number of occurrences in Python?

The easiest way to count the number of occurrences in a Python list of a given item is to use the Python . count() method. The method is applied to a given list and takes a single argument. The argument passed into the method is counted and the number of occurrences of that item in the list is returned.