palindrome function

Peter Otten __peter__ at
Sat Jul 12 08:19:13 CEST 2008

Denis Kasak wrote:

> Basically, it reverses the list in place, so it modifies the list which
> called it. It does not return a /new/ list which is a reversed version
> of the original, as you expected it to. Since it doesn't return anything
> explicitly, Python makes it return None. Hence, the comparison you are
> doing is between the original list and a None, which is False, naturally.
> Try this:
> spam = ['a', 'n', 'n', 'a']
> eggs = spam[:]
> if spam.reverse() == eggs:
>     print "Palindrome"

Your explanation is correct, but your example code compares None to
['a', 'n', 'n', 'a'] and therefore won't print "Palindrome", either.


More information about the Python-list mailing list