Written by:
Javier Leyva Seiglie
The fastest and simplest way to achieve the desired result would be to use an extended slice:
1name = "Joe" 2name = name[::-1] 3print(name) # eoJ
Taking in consideration that Python library doesn´t support the built-in method reverse()
as we would do, to name just one, the list container, we are left to ask: How to reverse a string in Python? Well, here are a few ways to do it, so let´s dig in:
Using steps to reverse a string is fast and simple:
1def reverseSteps(str): 2 string = str[::-1] 3 return string 4 5myString = "How to reverse a string in Python" 6 7print(reverseSteps(myString)) 8#output: nohtyP ni gnirts a esrever ot woH
Taking advantage of the extended slice fields [start:stop:step]
, we can reverse a string while we DO NOT stablish either start and stop fields. If we do not pass those values, default for start
field will be 0 and default for the end
field will be the length of the string. Passing -1 to the step
field indicates that we want to start taking our steps from the end of the element and finish in the start.
If you use the reversed() method by itself, it will throw the reference on the memory instead of the reversed string, like this:
1def reverseWithReversed(str): 2 string = reversed(str) 3 return string 4 5myString = "How to reverse a string in Python" 6 7print(reverseWithReversed(myString)) 8#output: <reversed object at 0x000001BB6DA81CF0> 9
You may ask why? Because it returns the reversed iterator of the string. We use join() to, as the name suggest, join them and achieve the desired result
1def reverseWithReversed(str): 2 string = "".join(reversed(str)) 3 return string 4 5myString = "How to reverse a string in Python" 6 7print(reverseWithReversed(myString)) 8#output: nohtyP ni gnirts a esrever ot woH
Yes, we can use our old and trusty companion to reverse a string. You must be already familiarize with loops, so here is the code example to make it happen:
1def reverseLoop(str): 2 string = "" 3 for i in str: 4 string = i + string 5 return string 6 7myString = "How to reverse a string in Python" 8 9print(reverseLoop(myString)) 10#output: nohtyP ni gnirts a esrever ot woH
We iterate through the given string (myString) and store its characters on the string variable. On every loop, we will replace the string value with the new character taken from myString store it and add to the end of the string variable the value that was on the string variable on the previous loop.
If you are a Die-Hard fan of lists, want to use the reverse()
method and don´t like the other options, here´s how to do it:
1def reverseWithList(str): 2 string = list(str) 3 string.reverse() 4 return "".join(string) 5 6myString = "How to reverse a string in Python" 7 8print(reverseWithList(myString)) 9#output: nohtyP ni gnirts a esrever ot woH
We turned the string into a list, then we are able to use the reverse() method on the list we just created and then we turn it back joining the list element into a string.
We covered different approaches regarding how to reverse a string in Python since the reverse()
method is not supported on Strings. We discussed the steps approach, reversed()
method, loops and using lists with the reverse()
method and how each and every one works behind the scene. Choosing which one to use depends on how much comfortable you feel with each of the options and the needs of the project.
Hope you enjoy the reading and keep on the Geek side!