Postavitev preprostega stavka if-then-else v eno vrstico

Možen dvojnik: Python Ternary Operator

Pravkar se ukvarjam s Pythonom in zelo mi je všeč kratkost sintakse. Vendar ali obstaja lažji način za zapis izjave if-then-else tako, da bi se prilegala eni vrstici?

Na primer:

if count == N:
    count = 0
else:
    count = N + 1

Ali obstaja preprostejši način zapisa? V Objective-C bi to zapisal kot:

count = count == N ? 0 : count + 1;

Ali obstaja kaj podobnega za Python?

Update

Vem, da lahko v tem primeru uporabim count == (count + 1) % N.

Sprašujem o splošni sintaksi.

Rešitev

To je natančneje izraz ternarni operator kot izraz if-then, tukaj je sintaksa za python

value_when_true if condition else value_when_false

Boljši primer: (hvala Mr. Burns)

'Da' if fruit == 'Apple' else 'No'

Tudi s pripisom in v nasprotju s sintakso if

fruit = 'Apple'
isApple = True if fruit == 'Apple' else False

vs

fruit = 'Apple'
isApple = False
if fruit == 'Apple' : isApple = True
Komentarji (13)
count = 0 if count == N else N+1

- ternarni operator. Čeprav bi rekel, da je tvoja rešitev bolj berljiva kot ta.

Komentarji (0)

Splošna ternarna sintaksa:

value_true if  else value_false

Drug način je lahko:

[value_false, value_true][]

npr:

count = [0,N+1][count==N]

Preden izbere eno, ovrednoti obe veji. Če želite ovrednotiti samo izbrano vejo:

[lambda: value_false, lambda: value_true][]()

npr:

count = [lambda:0, lambda:N+1][count==N]()
Komentarji (10)