Mettere una semplice dichiarazione if-then-else su una linea

Possibile duplicato: Operatore ternario Python

Mi sto addentrando in Python e mi piace molto la brevità della sintassi. Tuttavia, c'è un modo più semplice di scrivere una dichiarazione if-then-else in modo che stia su una sola riga?

Per esempio:

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

C'è un modo più semplice di scrivere questo? Cioè, in Objective-C lo scriverei come:

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

C'è qualcosa di simile per Python?

Aggiornamento

So che in questo caso posso usare count == (count + 1) % N.

Sto chiedendo la sintassi generale.

Soluzione

Questo è più specificamente un'espressione operatore ternario che un if-then, ecco la sintassi python

value_when_true if condition else value_when_false

Esempio migliore: (grazie Mr. Burns)

'Sì' if fruit == 'Apple' else 'No'

Ora con assegnazione e contrasto con la sintassi if

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

vs

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

- l'operatore ternario. Anche se direi che la tua soluzione è più leggibile di questa.

Commentari (0)

Sintassi ternaria generale:

value_true if  else value_false

Un altro modo può essere:

[value_false, value_true][]

ad esempio

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

Questo valuta entrambi i rami prima di sceglierne uno. Per valutare solo il ramo scelto:

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

ad esempio:

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