Python | Replace rear word in String
Last Updated :
23 Apr, 2023
Sometimes, while working with String list, we can have a problem in which we need to replace the most rear i.e last word of string. This problem has many application in web development domain. Let’s discuss different ways in which this problem can be solved.
Method #1 : Using split() + join() This is one way in which we can perform this task. In this, we break elements into parts and then return the last value and perform the addition of new element using join().
Python3
test_str = "GFG is good"
print ( "The original string is : " + test_str)
rep_str = "best"
res = " " .join(test_str.split( ' ' )[: - 1 ] + [rep_str])
print ( "The String after performing replace : " + res)
|
Output
The original string is : GFG is good
The String after performing replace : GFG is best
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #2 : Using rfind() + join() The combination of these functions can also be used to perform this task. In this, we perform the task of extracting the last word of the string using rfind() and join() is used to perform replace.
Python3
test_str = "GFG is good"
print ( "The original string is : " + test_str)
rep_str = "best"
res = test_str[: test_str.rfind( ' ' )] + ' ' + rep_str
print ( "The String after performing replace : " + res)
|
Output
The original string is : GFG is good
The String after performing replace : GFG is best
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #3 : Using split(),pop(),append() and join() methods
Python3
test_str = "GFG is good"
print ( "The original string is : " + test_str)
rep_str = "best"
x = test_str.split()
x.pop()
x.append(rep_str)
res = " " .join(x)
print ( "The String after performing replace : " + res)
|
Output
The original string is : GFG is good
The String after performing replace : GFG is best
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #4:Using split(),indexing, list(),join() functions
Python3
test_str = "GFG is good"
print ( "The original string is : " + test_str)
rep_str = "best"
list_words = list (test_str.split())
list_words[ - 1 ] = rep_str
res = " " .join(list_words)
print ( "The String after performing replace : " + res)
|
Output
The original string is : GFG is good
The String after performing replace : GFG is best
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #5 : Using regex
Python3
import re
test_str = "GFG is good"
print ( "The original string is : " + test_str)
rep_str = "best"
res = re.sub(r '\b[\w-]+\b(?=\s*$)' , rep_str, test_str)
print ( "The String after performing replace : " + res)
|
Output
The original string is : GFG is good
The String after performing replace : GFG is best
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #6: Using str.rsplit()
Python3
test_str = "GFG is good"
rep_str = "best"
print ( "The original string is : " + test_str)
words = test_str.rsplit(maxsplit = 1 )
words[ - 1 ] = rep_str
res = " " .join(words)
print ( "The String after performing replace : " + res)
|
Output
The original string is : GFG is good
The String after performing replace : GFG is best
Time Complexity: O(n)
Auxiliary Space: O(n)
Method 7: Using rpartition() function
Step-by-step approach:
- Initialize the original string and print it.
- Initialize the replace string.
- Use rpartition() function to split the string into three parts: string before the last occurrence of space,space, and the last word.
- Concatenate the first two parts with the replace string and space separator.
- Store the result in a variable.
- Print the result.
Python3
test_str = "GFG is good"
print ( "The original string is : " + test_str)
rep_str = "best"
first, sep, last = test_str.rpartition( ' ' )
last = rep_str
res = first + sep + last
print ( "The String after performing replace : " + res)
|
Output
The original string is : GFG is good
The String after performing replace : GFG is best
Time complexity: O(n), where n is the length of the string.
Auxiliary space: O(n), for storing the result in a variable.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...