Cleaning up conditionals
Cameron Simpson
cs at zip.com.au
Fri Dec 30 20:59:30 EST 2016
On 30Dec2016 15:17, Deborah Swanson <python at deborahswanson.net> wrote:
>> Ever consider using conjunctions?
>>
>> if len(l1[st]) and not len(l2[st]):
>> #0 is considered a false -- no need to test for "==0"
>> #non-0 is considered true -- no need to test for ">0"
>> #copy l1 to l2
>> elif not len(l1[st]) and len(l2[st]):
>> #copy l2 to l1
>> --
>> Wulfraed Dennis Lee Bieber AF6VN
>> wlfraed at ix.netcom.com HTTP://wlfraed.home.netcom.com/
>
>That's a neat shortcut, len(a) instead of len(a)!= 0. Thanks!
Also, for almost every python collection (lists, tuples, sets etc), python
boolean logic tests __nonzero__, which works off len() by default.
So:
if a:
# a is not empty: len(a) > 0
else:
# a is empty: len(a) == 0
I find this far more readable, presuming the reader knows that "empty" things
test as false. Of course, you need to ensure that any "collection"-ish classes
you use or write have this property, but the builtin ones do.
Cheers,
Cameron Simpson <cs at zip.com.au>
More information about the Python-list
mailing list