(test) ? a:b
bc at freeuk.com
Wed Oct 22 20:08:40 CEST 2014
"Rustom Mody" <rustompmody at gmail.com> wrote in message
news:7d2ea3c1-504e-4f5c-8338-501b1483df38 at googlegroups.com...
> On Wednesday, October 22, 2014 5:01:08 PM UTC+5:30, Ned Batchelder wrote:
>> On 10/22/14 5:05 AM, buscacio wrote:
>> > Em quarta-feira, 22 de outubro de 2014 06h29min55s UTC-2, ast
>> > escreveu:
>> >> Hello
>> >> Is there in Python something like:
>> >> j = (j >= 10) ? 3 : j+1;
>> >> as in C language ?
>> >> thx
>> > without not:
>> > j = [j+1, 3][j>=10]
>> > with not:
>> > j = [3, j+1][not (j>=10)]
>> Why on earth would you recommend this outdated hack, when there's a true
>> conditional operator?
> To learn a bit about the interchangeability of control and data
> [Just playing devil's advocate]
But it doesn't do the same thing.
x = cond ? f() : g(); # C version
x = [f(), g()] [cond]
the latter evaluates both f() and g() instead of just one. Apart from being
inefficient, it can have unintended side-effects.
More information about the Python-list