> On 30Dec2016 15:17, Deborah Swanson <pyt...@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
> >>     wlfr...@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 <c...@zip.com.au>

Another neat thing to know, and yes, that's much more readable. I've run
into trouble testing for empty (tests failed when they shouldn't have),
but I can't remember where I've had that problem, and since it happened
early in my learning python, chances are pretty good I screwed something
else up.  Thanks, I'll remember to try using it again  and see if I can
get it right.
 

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to