# palindrome iteration

Jussi Piitulainen jpiitula at ling.helsinki.fi
Sat Aug 28 14:11:03 CEST 2010

```Steven D'Aprano writes:
> On Sat, 28 Aug 2010 09:22:13 +0300, Jussi Piitulainen wrote:
>> Terry Reedy writes:
>>> On 8/27/2010 3:43 PM, Jussi Piitulainen wrote:
>>> > Dave Angel writes:
>>>
>>> > There could easily be a .reverse() method on strings. It would return
>>> > the reversed string, like .swapcase() returns the swapcased string.
>>>
>>> Could be, but the main use case seems to be for palindrome testing ;-)
>>> Given that slicing and reversed() can do the same thing, the need is
>>> thin.
>>
>> The need is quite thin, but immutability of strings is not an issue,
>> just like there can be .swapcase() though strings are immutable. That is
>> all I am saying above.
>
> You're right, there could be a reversed() method for strings. There
> could also be a disemvowel method that removes vowels, a randomise
> method that shuffles the letters around, a studlycaps method that
> changes the case of each letter randomly, and a method to check that
> brackets () are well- formed. They would all be useful to
> somebody. There are lots of different methods that strings could
> have. Where do you draw the line?

When I said that there could be such a method, I was merely objecting
to a statement, made in response to me, that there could not be such a
method because strings are immutable. You clearly agree with me that
that statement was not correct. Would you have let it stand if it was

To answer your question, I don't see a real need for .reversed() in
strings, but I do think .reversed() would be much more useful than
.swapcase() which is in Python now and for which I see no use at all.

I have not proposed adding anything to Python. I have only asked if
there is any nicer expression for string reversal than [::-1] in
Python now, and corrected an incorrect statement that was made in
response to me that there could not be a string reversal method
because Python strings are immutable.

I am still not proposing that anything be added to Python.

I have not even criticized Python for not having a nicer expression
for string reversal than [::-1]. I have merely asked if there is one,
because I didn't know if there is one, and I have shown some snippets
of code to illustrate what I might mean by nicer. Someone even
understood me. (Thanks.)

I think I have received the answer to my question by now - that there
is no obviously nicer way, and all other string reversal expressions
require some extra cruft and overhead.

> Not everything needs to be a built-in method. There is already a
> standard way to spell "reverse a string":
>
> astring[::-1]
>
> If you don't like that, you can do this:
>
> ''.join(reversed(astring))

I know. I agree. I was also shown a different way to test for
palindromicity,

list(s) == list(reversed(s))

which is quite nice apart from the overhead.

> I don't object to a hypothetical reverse() method on strings, but
> the gain is minimal.

I have not suggested that such a method should be added to the
language. I merely corrected a statement that there could not be such
a method because strings are immutable. I would not have bothered to
do even that if that incorrect statement had not been made in response
to my own post.

I agree that the gain would be minimal. There is no harm in the method
either, so I would not object to it if somebody were to propose its
addition, but just to clarify my position: I have not proposed it.

Hope this helps.

```