palindrome function
Denis Kasak
denis.kasak2718281828 at gmail.com
Fri Jul 11 18:34:42 EDT 2008
On Sat, Jul 12, 2008 at 12:22 AM, kdt <dorjetarap at googlemail.com> wrote:
> Hi all,
>
> Can someone please explain to me why the following evaluates as false?
>
>>>>list=['a','n','n','a']
>>>>list==list.reverse()
>>>>False
>
> I'm stumped :s
Read the documentation on list.reverse().
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"
Also, 'list' is a really bad name for a list, since this is the name of
the builtin type object for the list type.
--
Denis Kasak
More information about the Python-list
mailing list