Python has many useful string functions, like casefold() which converts a string to lower case. There is no string-reversing function built into the language. However, there are two simple approaches you can use to reverse a string in Python.

The specific method that you choose will depend on your personal preference. This article introduces the two approaches you can use to reverse a string in Python.

Slicing the String

The purpose of the slice operator is to extract specific parts of a string. It uses a combination of three values: start, stop, and step. The syntax is:

        string[start:stop:step]
    

However, slice is also a popular string reversal method in Python. To reverse a string with this method, you should pass a value of -1 for the step part. This will return every character in the string in reverse order. If you omit the start and stop parts, the return value will be the entire string, by default.

Using the Slice Operator to Reverse a String

        state = "California"

print(state[::-1])

Running the code above will produce the following output in the console:

        ainrofilaC

Reversing a String and Joining It Back Together

A more readable way to reverse a string in Python is to use the join() and reversed() functions together. The reversed() function produces a reversed iterator object of a given sequence. The sequence can be a primitive value, like a string, or a data structure such as a list or an array.

Using the Reversed Function

        state = "California"

reversedState = reversed(state)
    
for i in reversedState:

    print(i)

Running the code above will produce the following output in the console:

        a

i

n

r

o

f

i

l

a

C

As you can see, the reversed() function reversed the string. However, each character in the string is now an independent item that gets printed on the console through the Python for loop. This is where the join() function becomes useful. The join() function merges all the characters returned by the reversed() function and returns a reversed string.

Using the Join Function

        state = "California"

reversedState = "" .join(reversed(state))

print(reversedState)

Running the code above will produce the following output in the console:

        ainrofilaC

Why Choose One Method Over the Other?

The slicing approach is faster, mainly because the join() function creates a new list. However, using the join() function is more readable, which is an approach that is most valuable if the program has no comments.

Python reverses strings with one of the two methods in this article, but you can also create a function to reverse a string with the aid of a loop function.