and [True,True] --> [True, True]?????

Terry Reedy tjreedy at udel.edu
Mon Apr 20 20:20:44 EDT 2009


Gerhard Häring wrote:
> Martin v. Löwis wrote:
>>> Are they widespread? I haven't noticed, yet.
>>>
>>> I prefer to write it explicitly:
>>>
>>> if len(lst) > 0:
>> I prefer to test explicitly for the truth value of the
>> list. I don't want to test whether the length of the list
>> is greater than 0 (in fact, I don't care about the length
>> property of the list at all) - I want to know whether the
>> list is empty (or not empty). The Python syntax for this
>> test is
>>
>> if lst:
>>   # not empty
>>
>> or
>>
>> if not list:
>>   #empty
>> [...]
> 
> You're right - as most of the time ;-) This makes a lot of sense to me.
> 
> The reason I preferred len(), btw., was only that len() make it clear
> that the argument is a sequence.
> 
> Maybe I was just too annoyed by lots of Python code I read that looked
> like this:
> 
> def foo(x, y, z):
>     if x:
>         ...
>     else:
>         ...
> 
> with poorly named variables where I didn't know what the heck the
> variables are (bool, list, instance, ...). I hate it when I have to look
> for the actual method calls to figure out what's going in. Better
> variable naming and small comments would often help.

In my view, that is only excusable in throw-away private code or in 
languages like early BASIC where only one letter is allowed, and even 
then, 'x' should be a number, not a collection.




More information about the Python-list mailing list