I was looking for a way to print a string backwards, and after a quick search on google, I found this method:
Suppose a
is a string variable. This will return the a
string backwards:
a[::-1]
Can anyone explain how that works?
pythonslicestring
I was looking for a way to print a string backwards, and after a quick search on google, I found this method:
Suppose a
is a string variable. This will return the a
string backwards:
a[::-1]
Can anyone explain how that works?
Best Solution
Sure, the
[::]
is the extended slice operator. It allows you to take substrings. Basically, it works by specifying which elements you want as [begin:end:step], and it works for all sequences. Two neat things about it:For begin and end, if you give a negative number, it means to count from the end of the sequence. For instance, if I have a list:
Then
l[-1]
is 3,l[-2]
is 2, andl[-3]
is 1.For the
step
argument, a negative number means to work backwards through the sequence. So for a list::You could write
l[::-1]
which basically means to use a step size of -1 while reading through the list. Python will "do the right thing" when filling in the start and stop so it iterates through the list backwards and gives you[10,9,8,7,6,5,4,3,2,1]
.I've given the examples with lists, but strings are just another sequence and work the same way. So
a[::-1]
means to build a string by joining the characters you get by walking backwards through the string.