On Sat, Jul 12, 2008 at 12:22 AM, kdt <[EMAIL PROTECTED]> 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
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to