Eine einfache if-then-else-statement in eine Zeile schreiben

Mögliche Duplikate:
Python Ternärer Operator

Ich bin gerade in Python und ich mag die knappe Syntax sehr. Gibt es jedoch eine einfachere Möglichkeit, eine ifthenelse statement zu schreiben, sodass sie auf eine Zeile passt?

Beispielsweise:

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

Gibt es eine einfachere Möglichkeit, dies zu schreiben? Ich meine, in Objective-C würde ich folgendes schreiben:

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

Gibt es etwas Ähnliches für Python?

Aktualisieren

Ich weiß, dass ich in diesem Fall count == (count + 1) % N .

Ich frage nach der allgemeinen Syntax.

Das ist genauer gesagt ein ternärer Operatorausdruck als ein Wenn-Dann, hier ist die Python-Syntax

 value_when_true if condition else value_when_false 

Besseres Beispiel: (Danke Mr. Burns )

'Yes' if fruit == 'Apple' else 'No'

Jetzt mit Zuweisung und Kontrast mit if-Syntax

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

vs

 fruit = 'Apple' isApple = False if fruit == 'Apple' : isApple = True 
 count = 0 if count == N else N+1 

– der ternäre Betreiber. Obwohl ich sagen würde, dass Ihre Lösung lesbarer ist.

Außerdem können Sie immer noch die “normale” if-Syntax verwenden und sie in einer Zeile mit dem Doppelpunkt zusammenführen.

 if i > 3: print("We are done.") 

oder

 field_plural = None if field_plural is not None: print("insert into testtable(plural) '{0}'".format(field_plural)) 

Allgemeine ternäre Syntax:

 value_true if  else value_false 

Ein anderer Weg kann sein:

 [value_false, value_true][] 

z.B:

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

Dies wertet beide Zweige aus, bevor Sie einen auswählen. Um nur den ausgewählten Zweig zu bewerten:

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

z.B:

 count = [lambda:0, lambda:N+1][count==N]() 
  if  else  

mit deinem Code-Snippet würde es

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