Poner una simple declaración if-then-else en una línea

Posible duplicado: Operador ternario de Python

Me estoy iniciando en Python y me gusta mucho la sencillez de la sintaxis. Sin embargo, ¿hay una manera más fácil de escribir una declaración si-entonces-según para que quepa en una línea?

Por ejemplo:

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

¿Hay una forma más sencilla de escribir esto? Es decir, en Objective-C escribiría esto como

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

¿Hay algo similar para Python?

Actualización

Sé que en este caso puedo utilizar count == (count + 1) % N.

Pregunto por la sintaxis general.

Solución

Esto es más específicamente una expresión operador ternario que un if-then, aquí está la sintaxis de python

value_when_true if condition else value_when_false

Mejor ejemplo: (gracias Sr. Burns)

'Sí' si fruta == 'Manzana' sino 'No'

Ahora con asignación y contraste con la sintaxis if

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

vs

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

- ...el operador ternario. Aunque yo diría que su solución es más legible que esto.

Comentarios (0)

Sintaxis ternaria general:

value_true if  else value_false

Otra forma puede ser:

[value_false, value_true][]

por ejemplo

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

Esto evalúa ambas ramas antes de elegir una. Para evaluar sólo la rama elegida:

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

por ejemplo

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