Python | Extract numbers from string

Method # 1: Using comprehension list + isdigit () + split()
This problem can be solved with the split functions to convert the string to a list, and then a list comprehension which can help us iterate over the list and the isdigit function helps to deduce a digit from a string.

# Python3 code for demos
# getting numbers from a string
# using comprehension list + isdigit () + split ()

 
# initialization string

test_string = "There are 2 apples for 4 persons"

 
# print original line

print ( "The original string: " + test_string)

  
# using comprehension list + isdigit () + split ()
# getting numbers from a string

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

 
# print result

print ( "The numbers list i s: " + 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 with Python regex, we can use findall function to check for numeric occurrences using the corresponding regex string.

Output:

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


# Python3 demo code
# getting numbers from a string
# using re.findall ()

import re

  
# initialization string

test_string = "There are 2 apples for 4 persons"

 
# print original string

print ( "The original string: " + test_string)

  
# using re.findall ()
# getting numbers from a string

temp = re.findall (r `d +` , test_string)

res = list ( map ( int , temp))

 
# print result

print ( "The numbers list is:" + str (res))