2010-11-05 6 views

Répondre

71

PEP 308 ajoute un opérateur ternaire:

foo = "True" if test else "False" 

Il a été mis en œuvre depuis Python 2.5

+0

Wow. Tu m'as battu de 12 secondes et j'ai le même caractère que moi pour le personnage. –

+0

Merci, j'accepterai cette réponse dès que SO le permettra :) – cynicaljoy

-1

Celui-ci semble un peu plus comme ternaire d'origine:

foo=a and b or c 
+0

'f = a ou b ou c' fonctionne de la même façon qu'en javascript (il renvoie la première valeur truey). – h4k1m

+4

-1 Attention, il y a un cas où cela ne fonctionne pas: si la condition 'a' est True et' b' est une valeur fausse, comme False, 0, None, [], {} et ainsi de suite, alors le résultat est 'c', ce qui est faux (il devrait être' b'). Par exemple, (True et [] ou [1,2,3]) est égal à [1,2,3], tandis que ([] si True else [1, 2, 3]) est égal à [], as CA devrait etre. Je recommande de coller à l'opérateur ternaire officiel. – MiniQuark

Questions connexes