How do you only extract a number from a string in python?

Hello, readers! In this article, we will be focusing on the ways to extract digits from a Python String. So, let us get started.

1. Making use of isdigit[] function to extract digits from a Python string

Python provides us with string.isdigit[] to check for the presence of digits in a string.

Python isdigit[] function returns True if the input string contains digit characters in it.

Syntax:

We need not pass any parameter to it. As an output, it returns True or False depending upon the presence of digit characters in a string.

Example 1:

inp_str = "Python4Journaldev"

print["Original String : " + inp_str] 
num = ""
for c in inp_str:
    if c.isdigit[]:
        num = num + c
print["Extracted numbers from the list : " + num] 

In this example, we have iterated the input string character by character using a for loop. As soon as the isdigit[] function encounters a digit, it will store it into a string variable named ‘num’.

Thus, we see the output as shown below–

Output:

Original String : Python4Journaldev
Extracted numbers from the list : 4

Now, we can even use Python list comprehension to club the iteration and idigit[] function into a single line.

By this, the digit characters get stored into a list ‘num’ as shown below:

Example 2:

inp_str = "Hey readers, we all are here be 4 the time!"


print["Original string : " + inp_str] 


num = [int[x] for x in inp_str.split[] if x.isdigit[]] 

 
print["The numbers list is : " + str[num]] 

Output:

Original string : Hey readers, we all are here be 4 the time!
The numbers list is : [4]

2. Using regex library to extract digits

Python regular expressions library called ‘regex library‘ enables us to detect the presence of particular characters such as digits, some special characters, etc. from a string.

We need to import the regex library into the python environment before executing any further steps.

Further, we we re.findall[r'\d+', string] to extract digit characters from the string. The portion ‘\d+’ would help the findall[] function to detect the presence of any digit.

Example:

import re
inp_str = "Hey readers, we all are here be 4 the time 1!"


print["Original string : " + inp_str] 

num = re.findall[r'\d+', inp_str] 

print[num]

So, as seen below, we would get a list of all the digit characters from the string.

Output:

Original string : Hey readers, we all are here be 4 the time 1!
['4', '1']

Conclusion

By this, we have come to the end of this topic. Feel free to comment below, in case you come across any question.

I recommend you all to try implementing the above examples using data structures such as lists, dict, etc.

For more such posts related to Python, Stay tuned and till then, Happy Learning!! 🙂

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Many times, while working with strings we come across this issue in which we need to get all the numeric occurrences. This type of problem generally occurs in competitive programming and also in web development. Let’s discuss certain ways in which this problem can be solved.

    Method #1 : Using List comprehension + isdigit[] + split[]
    This problem can be solved by using split function to convert string to list and then the list comprehension which can help us iterating through the list and isdigit function helps to get the digit out of a string.

    test_string = "There are 2 apples for 4 persons"

    print["The original string : " + test_string]

    res = [int[i] for i in test_string.split[] if i.isdigit[]]

    print["The numbers list is : " + str[res]]

    Output :

    The original string : There are 2 apples for 4 persons
    The numbers list is : [2, 4]
    

    Method #2 : Using re.findall[]
    This particular problem can also be solved using python regex, we can use the findall function to check for the numeric occurrences using matching regex string.

    import re

    test_string = "There are 2 apples for 4 persons"

    print["The original string : " + test_string]

    temp = re.findall[r'\d+', test_string]

    res = list[map[int, temp]]

    print["The numbers list is : " + str[res]]

    Output :

    The original string : There are 2 apples for 4 persons
    The numbers list is : [2, 4]
    


    How do I get the only number in a string in Python?

    This problem can be solved by using split function to convert string to list and then the list comprehension which can help us iterating through the list and isdigit function helps to get the digit out of a string.

    How do I extract only a number from a string?

    Try this simple function that will return the numbers from a string:.
    private string GetNumbers[String InputString].
    String Result = "";.
    string Numbers = "0123456789";.
    int i = 0;.
    for [i = 0; i < InputString. Length; i++].
    if[Numbers. Contains[InputString. ElementAt[i]]].

    How do I extract a specific part of a string in Python?

    You can get substring of a string in python using the str[0:n] option..
    string – Name of the string from which the substring should be extracted..
    5 -Starting index of the substring. Inclusive..
    11 – Ending index of the substring. Exclusive..

    How do I extract numbers from a string in a Dataframe Python?

    How to Extract all Numbers from a String Column in Python Pandas.
    Here is how you can run to return a new column with only the numbers: df['Numbers Only'] = df['Numbers and Text'].astype['str'].str.extractall['[\d+]'].unstack[].fillna[''].sum[axis=1].astype[int] ... .
    Breakdown. .astype['str'] ... .
    .unstack[].

    Chủ Đề