Boolean testing a list in Python

Viewed 13897

I was testing a list to see if it's empty or not. Normally I use len(list) == 0 and I vaguely remembered reading a little while ago that the correct way to test if a list is empty was whether it was True or false.

So I tried list is False, and that returned False. Maybe I'm suppose to be using == ? Nope, that also returned false. list is True, returned false as did list == True.

Now I'm confused so I do a quick google and end up at: Best way to check if a list is empty

The top answer is:

if not a:
    print "List is empty"

So I search around some more and end up in the python manual where 4.1 states:

Any object can be tested for truth value, for use in an if or while condition or as operand of the Boolean operations below. The following values are considered false:

any empty sequence, for example, '', (), [].

Now I'm plain confused. If I test a list as if not list, it works fine. But if an empty list is false, then why can't I just do if list is False or if list == False?

Thanks

4 Answers
Related