(test) ? a:b
alister.nospam.ware at ntlworld.com
Wed Oct 22 20:03:57 CEST 2014
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
chained ternary operations are evil no mater what style or language they
are written in as they rapidly become confusing & unreadable
in my opinion they are better written as nested if statements
Telling the truth when you don't mean to.
More information about the Python-list