# Count number of digits in a string In this post, I am going to explain how to count the number of digits in a string with Python. I will explain how I extract the digits out Strings. This is common in the Data Science Domain.

I can count the number of digits with a simple for loop. I loop through all characters in a string and check if it is a digit. In my previous post Three words in python, I explained the isdigit function already. I make use of this function in this problem too. I increment a counter when the character is a digit. A very simple for loop.

``````text = "I am 1 string with 2 digits"
count = 0
for char in text:
if char.isdigit():
count += 1
print("the number of digits is: "  + str(count))
``````

Python has list comprehensions. With the build in function sum I can do the same. The sum function requires an iterable as input parameter.

``````text = "I am 1 string with 2 digits"
count = sum(1 for x in text if x.isdigit())
print("the number of digits is: "  + str(count))
``````

The sum function can operate on an array of Booleans too. A True value will act like a 1 and a False will act like a 0. Consider the following example.

``````result = sum([True,True,False])
print(result)   # This will print 2
``````

This results in the following result:

``````text = "I am 1 string with 2 digits"
count = sum(x.isdigit() for x in text)
print("the number of digits is: "  + str(count))
``````

## With regular expressions

I can also use the re package. The following example first removes all non digit characters. The remaining is a string with only characters. This means that I only have to take the length of the string to know how many digits are present in the string.

``````import re
text = "I am 1 string with 2 digits"
count = re.sub("\D", "", test_string)
print("the number of digits is: "  + len(count))
``````

The re package has a findall function. Here we can input a regular expression to count all digits.

``````len(re.findall('\d', text))
``````

## Bonus

As last one I also can make use of the built in String method count. Just count all digits in the string and add the numbers together with the sum method.

`````` return sum(text.count(digit) for digit in '1234567890')
``````

There are several ways to count the number of digits in a string with Python. I showed some of them here. I hope these tips can help you with similar problems while coding.