¿Hay una forma corta de asignar Ninguno o valor en una variable, dependiendo del valor?

x= value if value!= 999 else None
4
pnina 19 mar. 2017 a las 17:28

2 respuestas

La mejor respuesta

resultado = (on_false, on_true) [condición]

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

>>> value = 999
>>> x = (None,value)[value != 999]
>>> print x
None
4
Ajay Singh 19 mar. 2017 a las 14:46

Estás utilizando la forma correcta de hacerlo.

Pero si insiste en acortar la forma de resolverlo, puede usar este método:

primera forma:

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

Usando el truco python guardando el mismo hash para False y 0 (hash = 0).

segunda forma:

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

Usando el método get y el valor predeterminado para traer esto.

tercera forma:

[None, value][value != 999]

Cuando la primera parte representa la declaración de valor y la segunda como condición booleana.

1
nivhanin 19 mar. 2017 a las 15:01