Python | Extract digits from given string
While programming, sometimes, we just require a certain type of data and need to discard other. This type of problem is quite common in Data Science domain, and since Data Science uses Python worldwide, its important to know how to extract specific elements. This article discusses certain ways in which only digit can be extracted. Let’s discuss the same.
Method #1 : Using join() + isdigit() + filter()
This task can be performed using the combination of above functions. The filter function filters the digits detected by the isdigit function and join function performs the task of reconstruction of join function.
Python3
# Python3 code to demonstrate # Extract digit string # using join() + isdigit() + filter() # initializing string test_string = 'g1eeks4geeks5' # printing original strings print ("The original string : " + test_string) # using join() + isdigit() + filter() # Extract digit string res = ''.join( filter ( lambda i: i.isdigit(), test_string)) # print result print ("The digits string is : " + str (res)) |
The original string : g1eeks4geeks5 The digits string is : 145
Method #2 : Using re
The regular expressions can also be used to perform this particular task. We can define the digit type requirement, using “\D”, and only digits are extracted from the string.
Python3
# Python3 code to demonstrate # Extract digit string # using re import re # initializing string test_string = 'g1eeks4geeks5' # printing original strings print ("The original string : " + test_string) # using re # Extract digit string res = re.sub("\D", "", test_string) # print result print ("The digits string is : " + str (res)) |
The original string : g1eeks4geeks5 The digits string is : 145
Method 3: Using loops:
This task is done by using for loop.
Python3
# Python3 code to demonstrate # Extract digit string s = "g1eeks4geeks5" #using for loop for i in s: # using isdigit() function if (i.isdigit()): print (i,end = "") |
Output: The original string : g1eeks4geeks5 The digits string is : 145
Time Complexity: O(n)
Auxiliary Space: O(1)
Method 4: Using recursion:
Python3
# Python3 code to # Extract digits from string #using recursion #the function returns digits from string def ExtractDigits(s,i = 0 ): #base case if i = = len (s): return #check if s[i] is digit or not if s[i].isdigit(): # if it is digit #then print s[i] print (s[i], end = '') i + = 1 #Increment i #calling function recursively ExtractDigits(s,i) #driver code s = "g1eeks4geeks5" #function call ExtractDigits(s) #this code is contributed by Shivesh Kumar Dwivedi |
145
Method 5: Using ord() method
Python3
# Python3 code to demonstrate # Extract digit string s = "g1eeks4geeks5" #using for loop for i in s: if ord (i) in range ( 48 , 58 ): print (i,end = "") |
145
Method 6 : Using isnumeric() method
Approach
- Initiate a for loop to traverse the string
- Check whether the character is numeric by using isnumeric()
- Display the character if numeric
Python3
# Python3 code to demonstrate # Extract digit string s = "g1eeks4geeks5" #using for loop for i in s: if (i.isnumeric()): print (i,end = "") |
145
Time Complexity : O(N) N – length of string
Auxiliary Space :O(1)
Please Login to comment...