Quiero escribir una función en Python que devuelva diferentes valores fijos en función del valor de un índice de entrada.
En otros lenguajes usaría una sentencia switch
o case
, pero Python no parece tener una sentencia switch
. ¿Cuáles son las soluciones recomendadas en Python en este caso?
Siempre me ha gustado hacerlo así
result = {
'a': lambda x: x * 5,
'b': lambda x: x + 7,
'c': lambda x: x - 2
}[value](x)
Si en realidad sólo está devolviendo un valor fijo predeterminado, podría crear un diccionario con todos los índices de entrada posibles como claves, junto con sus valores correspondientes. Además, es posible que no quieras que una función haga esto - a menos que estés calculando el valor de retorno de alguna manera.
Ah, y si te apetece hacer algo parecido a un interruptor, mira aquí.