2012-10-08 12 views
21

Powiel możliwe:
Ternary conditional operator in PythonPythoniczny sposób na `return (value == 'ok')? 'OK': 'nok' `

mam ten problem i nie mam pojęcia do zadawania google to:

(value == 'ok') ? 'ok' : 'not ok'

Mam na myśli tę gramatykę z:

(expression) ? (return if <expresion> is true) : (return this value if <expresion> is false 
+7

Na marginesie, to się nazywa "trójskładnikowych operatora. –

+0

dlaczego mam "-1"? – WBAR

+0

W języku C jest to tak zwany "operator potrójny", "potrójny" operator potoku pytającego wskazuje, gdzie chcesz się udać. – mgilson

Odpowiedz

30

Łatwy peasy:

'String ok' if value == 'ok' else 'String nok' 

Jest to conditional expression.

+2

Udaje również maskowanie jako wyrażenie potrójne. – bossylobster

+18

Chociaż "wyrażenie warunkowe" jest o wiele lepszą nazwą. Nawet w C "potrójnym operatorze" jest dość głupia nazwa; to tak, jakby wywoływać operatora binarnego "+" ". – Ben

11

Jak o tym przypadku:

{True: 'String ok', False: 'String nok'}[value == 'ok'] 

* Nie bierz poważnie :)

+8

To było podobne do starego sposobu robienia tego przed dodaniem składni "if else". Ale widziałem to z krotką, ponieważ bool będzie eval na 0 lub 1: '(" NIE OK "," OK ") [wartość ==" ok "] ' – jdi

+0

@jdi, który jest wciąż powszechną praktyką w (sapanie) * kod golfa * – Cyoce

Powiązane problemy