 <p>Empty list evaluates to <code>False</code> and non-empty list evaluates to <code>True</code>.</p> <p><code>if list1 and list2:</code></p> <p>is equivalent to:</p> <p><code>if list1 is not empty and list2 is not empty</code>:</p> <hr> <h2><a href="http://docs.python.org/2/library/stdtypes.html#truth-value-testing" rel="nofollow">List of falsy values in python</a>:</h2> <ul> <li><p>None</p></li> <li><p>False</p></li> <li><p>zero of any numeric type, for example, <code>0</code>, <code>0L</code>, <code>0.0</code>, <code>0j</code>.</p></li> <li><p>any empty sequence, for example, <code>''</code>, <code>()</code>, <code>[]</code>.</p></li> <li><p>any empty mapping, for example, <code>{}</code>.</p></li> <li><p>instances of user-defined classes, if the class defines a <code>__nonzero__()</code> or <code>__len__()</code> method, when that method returns the integer zero or bool value False. </p></li> </ul> <p>All other values are considered true — so objects of many types are always true.</p>