Go to Google Groups Home    comp.lang.python
Re: 0 == False but [] != False?

Paul McGuire <pt...@austin.rr.com>

On May 23, 11:53 pm, Rajarshi <rajarshi.g...@gmail.com> wrote:

> This is a slightly naive question, but I know that 0 can be used to
> represent False. So

> >>> 0 == False

> True

> But, I know I can use [] to represent False as in

> >>> if not []: print 'empty'

> ...
> empty

> But then doing the following gives a surprising (to me!) result

> >>> [] == False

> False

> Could anybody point out why this is the case?

> Thanks,
> Rajarshi

This has *got* to rank up there among the VFAQ's of them all, along
with the mysterious shared default empty list argument.  I think this
particular question has been asked in one form or another at least
twice a week for the past month!

-- Paul