Steve D'Aprano writes: > On Sun, 1 Jan 2017 02:58 pm, Deborah Swanson wrote: > >>> It's possible to select either l1 or l2 using an expression, >>> and then subscript that with [v]. However, this does not >>> usually make for readable code, so I don't recommend it. >>> >>> (l1 if whatever else l2)[v] = new_value >>> >>> ChrisA >> >> I'm not sure I understand what you did here, at least not well enough >> to try it. > > > The evolution of a Python programmer :-) > > > (1) Step One: the naive code. > > if condition: > l1[v] = new_value > else: > l2[v] = new_value > > > (2) Step Two: add a temporary variable to avoid repeating the > assignment > > if condition: > temp = l1 > else: > temp = l2 > temp[v] = new_value > > > (3) Step Three: change the if...else statement to an expression > > temp = l1 if condition else l2 > temp[v] = new_value > > > (4) Step Four: no need for the temporary variable > > (l1 if condition else l2)[v] = new_value
(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] Merry new year :) -- https://mail.python.org/mailman/listinfo/python-list