Open In App

Python | Frequency of numbers in String

Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with Strings, we can have a problem in which we need to check how many of numerics are present in strings. This is a common problem and have application across many domains like day-day programming and data science. Lets discuss certain ways in which this task can be performed. 

Method #1 : Using re.findall() + len() The combination of above functions can be used to perform this task. In this, we check for all numbers and put in list using findall() and the count is extracted using len(). 

Python3




# Python3 code to demonstrate working of
# Frequency of numbers in String
# Using re.findall() + len()
import re
 
# initializing string
test_str = "geeks4feeks is No. 1 4 geeks"
 
# printing original string
print("The original string is : " + test_str)
 
# Frequency of numbers in String
# Using re.findall() + len()
res = len(re.findall(r'\d+', test_str))
 
# printing result
print("Count of numerics in string : " + str(res))


Output : 

The original string is : geeks4feeks is No. 1 4 geeks
Count of numerics in string : 3

Time complexity: The time complexity of re.findall() function is O(n), where n is the length of the input string.

Auxiliary space: The auxiliary space used by re.findall() function is O(n), where n is the length of the input string.

  Method #2 : Using sum() + findall() The combination of above functions can also be used to solve this problem. In this, we cumulate the sum using sum(). The task of findall() is to find all the numerics. 

Python3




# Python3 code to demonstrate working of
# Frequency of numbers in String
# Using re.findall() + sum()
import re
 
# initializing string
test_str = "geeks4feeks is No. 1 4 geeks"
 
# printing original string
print("The original string is : " + test_str)
 
# Frequency of numbers in String
# Using re.findall() + sum()
res = sum(1 for _ in re.finditer(r'\d+', test_str))
 
# printing result
print("Count of numerics in string : " + str(res))


Output : 

The original string is : geeks4feeks is No. 1 4 geeks
Count of numerics in string : 3

Method #3 : Using isdigit() method

Python3




# Python3 code to demonstrate working of
# Frequency of numbers in String
 
# initializing string
test_str = "geeks4feeks is No. 1 4 geeks"
 
# printing original string
print("The original string is : " + test_str)
 
# Frequency of numbers in String
res=0
for i in test_str:
    if(i.isdigit()):
        res+=1
# printing result
print("Count of numerics in string : " + str(res))


Output

The original string is : geeks4feeks is No. 1 4 geeks
Count of numerics in string : 3

The Time and Space Complexity for all the methods are the same:

Time Complexity: O(n)

Auxiliary Space: O(n)

Method #4 : Without using any builtin methods

Python3




# Python3 code to demonstrate working of
# Frequency of numbers in String
 
# initializing string
test_str = "geeks4feeks is No. 1 4 geeks"
 
# printing original string
print("The original string is : " + test_str)
 
# Frequency of numbers in String
res=0
digits="0123456789"
for i in test_str:
    if(i in digits):
        res+=1
# printing result
print("Count of numerics in string : " + str(res))


Output

The original string is : geeks4feeks is No. 1 4 geeks
Count of numerics in string : 3

Method #5 : Using filter()+list()+len()+isdigit()+lambda functions

Python3




# Python3 code to demonstrate working of
# Frequency of numbers in String
 
# initializing string
test_str = "geeks4feeks is No. 1 4 geeks"
 
# printing original string
print("The original string is : " + test_str)
 
# Frequency of numbers in String
res = len(list(filter(lambda x: x.isdigit(), test_str)))
 
# printing result
print("Count of numerics in string : " + str(res))


Output

The original string is : geeks4feeks is No. 1 4 geeks
Count of numerics in string : 3

Time Complexity: O(n)

Auxiliary Space: O(n)

Method #6 : Using map

Python3




# Python3 code to demonstrate working of
# Frequency of numbers in String
  
# initializing string
test_str = "geeks4feeks is No. 1 4 geeks"
  
# printing original string
print("The original string is : " + test_str)
  
# Frequency of numbers in String
res = sum(map(str.isdigit, test_str))
  
# printing result
print("Count of numerics in string : " + str(res))


Output

The original string is : geeks4feeks is No. 1 4 geeks
Count of numerics in string : 3

Time Complexity: O(n)

Auxiliary Space: O(1)

Note: In this approach, we are using map() function to convert all the characters of the string into True or False based on whether it is a digit or not. Then using sum() we are counting the number of True values, which is equivalent to counting the number of digits in the string.



Last Updated : 17 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads