Given a long sentence, reverse each word of the sentence individually in the sentence itself. Examples:
Input : Geeks For Geeks is good to learn Output : skeeG roF skeeG si doog ot nrael Input : Split Reverse Join Output : tilpS esreveR nioJ
We shall use Python’s built in library function to reverse each word individually in the string itself. Prerequisites : 1. split() 2. Reversing Techniques in Python 3. List Comprehension Method in python 4. join()
- First split the sentence into list of words.
- Reverse each word of the string in the list individually.
- Join the words in the list to form a new sentence.
Below is the implementation of above idea.
Python3
# Python code to Reverse each word # of a Sentence individually # Function to Reverse words def reverseWordSentence(Sentence): # Splitting the Sentence into list of words. words = Sentence.split(" ") # Reversing each word and creating # a new list of words # List Comprehension Technique newWords = [word[:: - 1 ] for word in words] # Joining the new list of words # to for a new Sentence newSentence = " ".join(newWords) return newSentence # Driver's Code Sentence = "Lazyroar is good to learn" # Calling the reverseWordSentence # Function to get the newSentence print (reverseWordSentence(Sentence)) |
Output:
skeeGrofskeeG si doog ot nrael
Python is well known for its short codes. We shall do the same task but with lesser line of codes.
Python3
# Python code to Reverse each word # of a Sentence individually # Function to Reverse words def reverseWordSentence(Sentence): # All in One line return ' ' .join(word[:: - 1 ] for word in Sentence.split(" ")) # Driver's Code Sentence = "Geeks for Geeks" print (reverseWordSentence(Sentence)) |
Output:
skeeG rof skeeG
Approach#3: Using re.sub() function We can use re.sub() function to replace the words in sentence with reversed words in sentence. We capture the word in string with the help of group method and replace it with reversed word.
Python3
# Python code to Reverse each word # of a Sentence individually import re # Function to Reverse words def reverseWordSentence(Sentence): # substituting reverse word in place of word in sentence newSentence = re.sub( '(\w+)' , lambda x : x.group()[:: - 1 ], Sentence) return newSentence # Driver's Code Sentence = "Lazyroar is good to learn" # Calling the reverseWordSentence # Function to get the newSentence print (reverseWordSentence(Sentence)) |
Output:
skeeGrofskeeG si doog ot nrael
Approach#4: Using map
We can split the sentence into individual words using the split() method, and then use the map() function to apply the [::-1] slice operator to each word.
Algorithm
1. Start by defining the function “reverse_words” that takes a single parameter “sentence”.
2. Split the “sentence” into individual words using the split function and store them in the variable “words”.
3. Define a lambda function that takes a string and returns its reverse. In this case, the lambda function is defined as “lambda x: x[::-1]”.
4. Apply the lambda function to each element in “words” using the map function and store the result in the variable “reversed_words”.
5. Join the elements in “reversed_words” into a single string with a space separating each element using the join function.
6. Return the resulting string
Python3
def reverse_words(sentence): words = sentence.split() reversed_words = list ( map ( lambda x: x[:: - 1 ], words)) return ' ' .join(reversed_words) sentence = "Lazyroar is good to learn" print (reverse_words(sentence)) |
skeeGrofskeeG si doog ot nrael
Time complexity: O(nm), where n is the number of words in the sentence and m is the maximum length of a word in the sentence.
Auxiliary Space: O(nm), as we are storing the reversed words in a list.