Python find in string count

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.

Frequently Asked:

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 :

string_var = 'He is Standing below a Tree' print( string_var.count('t') )

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.

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'])
Counter() 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.

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))

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 :

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'])

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 :

import pandas as pd string_var = 'He is Standing below a Tree' print( pd.Series(list(string_var)).value_counts() )
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.

Источник

Python: Count Number of Occurrences in a String (4 Ways!)

Python Count Occurrences in a String Cover Image

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()

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 helpful 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()

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.

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.

>>> 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
  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.

Источник

Оцените статью