Digamos que tengo dos variables, var y text. Me gustaría saber cómo podría cambiar el valor de text dependiendo de a qué var es igual.

Por ejemplo, recibo var y su valor es "esto". Entonces me gustaría que text obtenga el valor 1. Si var es igual a "eso", text sería igual a 2.

Me gustaría no usar if ... elif ya que podría haber muchos valores.

Perdón por mi inglés, podría intentar volver a explicar si no está claro

3
Kemiance 11 may. 2016 a las 10:32

3 respuestas

La mejor respuesta

Use un dict:

yourdict = {'this':1, 'that':2, ...}
text = yourdict[var]
6
polku 11 may. 2016 a las 07:36

Python no tiene declaración de interruptor / caso. La mejor manera de hacerlo es usar un diccionario, que encuentro más claro incluso en idiomas que proporcionan una declaración de cambio.

E.g.

cases = {
    'this': 'blah',
    'that': 'blub'
}

var = 'this'
text = cases.get(var, 'your default value here')
print(text)
2
cbo 11 may. 2016 a las 07:44

Use un diccionario para mantener las asignaciones:

check = { 'this': 1, 'that' : 2 }

Entonces puede usar el valor dinámicamente:

text = check.get(var)
4
heemayl 11 may. 2016 a las 07:37