[BangPypers] Truth Tests (bool)
Noufal Ibrahim
noufal at nibrahim.net.in
Wed Jan 11 16:13:06 CET 2012
Senthil Kumaran <senthil at uthcode.com> writes:
> On Wed, Jan 11, 2012 at 09:49:58AM +0530, Noufal Ibrahim wrote:
>
>> > It is not clear what you want from your description. To check if a
>> > list is empty, see if len( list ) is zero.
>>
>> You don't want to do that. Your "list" might be a generator (unless you
>> check for type which is a bad idea anyway) and "len"ing that will
>> consume it which might be a potentially expensive operation.
>
> While the explaination on __nonzero__ is useful out of this context,
> how can list be a generator? I am assuming that none are confusing the
> terminologies.
A list can't be a generator but if you write a function to receive an
iterable x and then do a len(x) to check it it's True or False, it will
work fine for lists but passing a generator this function might have
unpredictable results. That's why I'm cautioning against using `len` to
check for whether an object is empty or not.
> In practical cases for testing boolean in lists, just use the list as
> the test. Empty list is false.
Agreed. This is the right way to do it rather than using len.
--
~noufal
http://nibrahim.net.in
Why don't you pair `em up in threes? -Yogi Berra
More information about the BangPypers
mailing list