Given a string (may contain both characters and digits), write a Python program to remove the numeric digits from string. Let’s discuss the different ways we can achieve this task.
Method #1: Using join and isdigit()
Python3
# Python code to demonstrate # how to remove numeric digits from string # using join and isdigit # initialising string ini_string = "Geeks123for127Lazyroar" # printing initial ini_string print ( "initial string : " , ini_string) # using join and isdigit # to remove numeric digits from string res = ''.join([i for i in ini_string if not i.isdigit()]) # printing result print ( "final string : " , res) |
initial string : Geeks123for127Lazyroar final string : GeeksforLazyroar
Time Complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(n)
Method #2: Using translate and digits
Python3
# Python code to demonstrate # how to remove numeric digits from string # using translate from string import digits # initialising string ini_string = "Geeks123for127Lazyroar" # printing initial ini_string print ( "initial string : " , ini_string) # using translate and digits # to remove numeric digits from string remove_digits = str .maketrans(' ', ' ', digits) res = ini_string.translate(remove_digits) # printing result print ( "final string : " , res) |
initial string : Geeks123for127Lazyroar final string : GeeksforLazyroar
Time Complexity: O(n), where n is the length of the input string “ini_string”. The reason is that the translate function is applied only once to the input string “ini_string”.
Auxiliary Space: O(1), as it only uses a constant amount of extra memory to store the removed digits and the result string.
Method #3: Using filter and lambda
Python3
# Python code to demonstrate # how to remove numeric digits from string # using filter and lambda # initialising string ini_string = "akshat123garg" # printing initial ini_string print ( "initial string : " , ini_string) # using filter and lambda # to remove numeric digits from string res = "".join( filter ( lambda x: not x.isdigit(), ini_string)) # res = ini_string # printing result print ( "final string : " , str (res)) |
initial string : akshat123garg final string : akshatgarg
Time Complexity: O(n), where n is the length of the initial string “ini_string”.
Auxiliary Space: O(n), as the filter function creates a new string “res” which is of length n. The variable “res” is stored in memory, hence the space complexity is O(n).
Method#4 Using join() and isalpha()
Python3
# Python code to demonstrate # how to remove numeric digits from string # using join and isalpha # initialising string str1 = "Geeks123for127Lazyroar" # printing initial ini_string print ( "initial string : " , str1) # using join and isalpha # to remove numeric digits from string str2 = "".join(x for x in str1 if x.isalpha()) # printing result print ( "final string : " , str2) |
initial string : Geeks123for127Lazyroar final string : GeeksforLazyroar
Time Complexity: O(n), where n is the length of the string. This is because the code loops through each character in the string and performs a simple check for each character.
Auxiliary Space: O(n), where n is the length of the final string after removing numeric digits. This is because a new string of size n is created as the result of removing numeric digits from the original string.
Method#5: Using loop and in
Python3
# Python code to demonstrate # how to remove numeric digits from string # using loop and in # initialising string str1 = "Geeks123for127Lazyroar" # printing initial ini_string print ( "initial string : " , str1) # using loop and in # to remove numeric digits from string num = "1234567890" str2 = "" for i in str1: if i not in num: str2 + = i # printing result print ( "final string : " , str2) |
initial string : Geeks123for127Lazyroar final string : GeeksforLazyroar
Time complexity: O(n), where n is the length of the string. The loop iterates through each character of the string once.
Auxiliary space complexity: O(n), where n is the length of the string. The str2 variable is created to store the final string without numeric digits, which is the same length as the original string.
Method #6: Using ord() function
Python3
# Python code to demonstrate # how to remove numeric digits from string # using loop and in # initialising string str1 = "Geeks123for127Lazyroar" # printing initial ini_string print ( "initial string : " , str1) # using loop and in # to remove numeric digits from string str2 = "" for i in str1: if ( not ord (i) in range ( 48 , 58 )): str2 + = i # printing result print ( "final string : " , str2) |
initial string : Geeks123for127Lazyroar final string : GeeksforLazyroar
Time complexity: O(n), where n is the length of the input string ‘str1’.
Auxiliary space: O(n), where n is the length of the input string ‘str1’.
Method #7: Using re
One approach to remove numeric digits from a given string is to use a regular expression to match and remove the digits. This can be done using the re module in Python.
Here is an example of how this can be done:
Python3
import re # Initialize the string ini_string = "Geeks123for127Lazyroar" # Print the initial string print ( "initial string : " , ini_string) # Use a regular expression to remove the digits res = re.sub(r '\d' , '', ini_string) # Print the result print ( "final string : " , res) #This code is contributed by Edula Vinay Kumar Reddy |
initial string : Geeks123for127Lazyroar final string : GeeksforLazyroar
Time Complexity: O(n), where n is the length of the string, as it needs to iterate through the entire string to remove the digits.
Auxiliary Space: O(n), as it only requires memory to store the result.
Method #8: Using replace() method
Python3
# Python code to demonstrate # how to remove numeric digits from string # initialising string ini_string = "Geeks123for127Lazyroar" # printing initial ini_string print ( "initial string : " , ini_string) # to remove numeric digits from string for i in "0123456789" : ini_string = ini_string.replace(i,"") # printing result print ( "final string : " , ini_string) |
initial string : Geeks123for127Lazyroar final string : GeeksforLazyroar
Time Complexity: O(n), where n is the length of the string, as it needs to iterate through the entire string to remove the digits.
Auxiliary Space: O(n), as it only requires memory to store the result.
Method #9 : Using re.match()
Approach
- Initiate a for loop to traverse ini_string, create an empty string res
- Append the characters which are not numeric to res (to check numeric or not use regular expression ‘^[0-9]+$’ and re.match() method)
- Display res
Python3
import re # Initialize the string ini_string = "Geeks123for127Lazyroar" # Print the initial string print ( "initial string : " , ini_string) # Use a regular expression to remove the digits res = "" for i in ini_string: if not re.match( '^[0-9]+$' , i): res + = i # Print the result print ( "final string : " , res) |
initial string : Geeks123for127Lazyroar final string : GeeksforLazyroar
Time Complexity: O(n), where n is the length of the string, as it needs to iterate through the entire string to remove the digits.
Auxiliary Space: O(n), as it only requires memory to store the result.