Open In App

Reverse Words in a Given String in Python

Last Updated : 06 Jan, 2025
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

In this article, we explore various ways to reverse the words in a string using Python. From simple built-in methods to advanced techniques like recursion and stacks. We are going to see various techniques to reverse a string.

Using split() and join()

Using split() and join() is the most common method to reverse the words in a string.

# Input string
s = "Geeks for Geeks"

# Split the string into words, reverse the list of words, and join them back
reversed_words = ' '.join(s.split()[::-1])

print(reversed_words)

Output
Geeks for Geeks

Explanation:

  • The split() method splits the string into a list of words.
  • [::-1] reverses the list of words.
  • join() combines the reversed words back into a single string.

Using a Loop

We can manually reverse the words using a loop.

s = "Geeks for Geeks"

# Split the string into words
words = s.split()

# Initialize an empty string to store the result
reversed_words = ""

# Iterate through the words in reverse order
for word in reversed(words):
    reversed_words += word + " "

# Strip the trailing space
reversed_words = reversed_words.strip()

print(reversed_words)

Output
Geeks for Geeks

Explanation:

  • Split the string into words, then use a loop to traverse the words in reverse order.
  • Append each word to a new string, adding a space after each word.

Using a Stack

A stack can be used to reverse the order of words.

# Input string
s = "Geeks for Geeks"

# Split the string into words
words = s.split()

# Reverse the words using a stack
stack = []
for word in words:
    stack.append(word)

reversed_words = ""
while stack:
    reversed_words += stack.pop() + " "

# Strip the trailing space
reversed_words = reversed_words.strip()

# Output the result
print(reversed_words)

Output
Geeks for Geeks

Explanation:

  • Words are pushed onto a stack (a Last-In-First-Out structure).
  • Popping words from the stack reverses their order.

Using Recursion

A recursive approach can also reverse the words.

s = "Geeks for Geeks"

# Recursive function to reverse words
def reverse_words(words):
    if not words:
        return ""
    return words[-1] + " " + reverse_words(words[:-1])

# Split the string and call the recursive function
reversed_words = reverse_words(s.split()).strip()

print(reversed_words)

Output
Geeks for Geeks

Explanation:

  • The function takes the list of words, returns the last word, and recursively processes the remaining words.

Next Article
Practice Tags :

Similar Reads

three90RightbarBannerImg