On Sat, 31 Dec 2016 14:35:46 -0800, "Deborah Swanson"
<pyt...@deborahswanson.net> declaimed the following:
if len(l1[v]) == 0 and len(l2[v]) != 0:
l1[v] = l2[v]
elif len(l2[v]) == 0 and len(l1[v]) != 0:
l2[v] = l1[v]
elif l1[v] != l2[v]:
ret += ", " + labels[v] + " diff" if len(ret) > 0 else
labels[v] + " diff"
There are a couple of things I would probably do
with this:
1. Drop the len() calls and just test the lists directly.
2. Eliminate some redundant indexing operations.
l1v = l1[v]
l2v = l2[v]
if l2v and not l1v:
l1[v] = l2v
elif l1v and not l2v:
l2[v] = l1v
elif l1v != l2v:
ret += ", " + labels[v] + " diff" if len(ret) > 0 else
labels[v] + " diff"
Jussi Piitulainen wrote:
> (l1 if bool(l1[v]) < bool(l2[v]) else
> l2 if bool(l1[v]) > bool(l2[v]) else
> l1)[v] = (l2 if bool(l1[v]) < bool(l2[v]) else
> l1 if bool(l1[v]) > bool(l2[v]) else
> l1)[v]
>
If you're aiming for readability, that's *not* the way
to go! Not every 7-line function needs to be written
on one line. :-)
--
Greg
--
https://mail.python.org/mailman/listinfo/python-list