On Thu, 23 Oct 2014 03:28:48 +1100, Steven D'Aprano wrote: >> Why on earth would you recommend this outdated hack, when there's a >> true conditional operator? >> >> j = 3 if j >= 10 else j+1 > > I think that's a bit harsh. Especially since this appears to have been > Buscacio's first post here. Hopefully not his(?) last post! > > The old (b, a)[condition] idiom is not outdated for anyone supporting > Python 2.4, and I wouldn't call it a hack. Indexing into a sequence with > a bool is basic to Python's semantics: True and False are ints equal to > 1 and 0 respectively. It's also a technique easily extensible to more > than two values: > > '01TX'[n % 4] > > is in my opinion more readable than: > > i = n % 4 '0' if i == 0 else '1' if i == 1 else 'T' if i == 3 else > 'X'
chained ternary operations are evil no mater what style or language they are written in as they rapidly become confusing & unreadable "Readability counts" in my opinion they are better written as nested if statements -- Ambiguity: Telling the truth when you don't mean to. -- https://mail.python.org/mailman/listinfo/python-list