2017-03-19 4 views

Antwort

0

result = (on_false, on_true) [Bedingung]

>>> value = 10 
>>> x = (None,value)[value != 999] 
>>> print x 
10 

>>> value = 999 
>>> x = (None,value)[value != 999] 
>>> print x 
None 
1

Sie sind die richtige Art und Weise mit ihm zu tun.

aber wenn Sie auf shorten Weg beharren, es herauszufinden Sie diese Methode verwenden kann:

erster Weg:

{0:value}.get(value==999) 

mit dem Trick Python Speichern gleiche Hash für falsch und 0 (hash = 0).

zweiter Weg:

{999:None}.get(value,value) 

mit get-Methode und Standardwert dieses zu bringen.

dritter Weg:

[None, value][value != 999] 

wenn erster Teil steht für Wertanmeldung und die zweiten als Boolesche Bedingung.

+1

Während möglicherweise richtig, würde ich argumentieren, dass alle diese weit mehr obskur als OP ursprünglichen Code sind. – SiHa

+1

Ich muss dir zustimmen :) OP bat um einen "kurzen Weg", also versuche mit meinem Code Golf-Fähigkeiten zu helfen :) – nivhanin

+0

Fair genug:) ... – SiHa

Verwandte Themen