Tengo una declaración if-elif-elif-else en la que el 99% de las veces, se ejecuta la declaración else:
if something == 'this':
doThis()
elif something == 'that':
doThat()
elif something == 'there':
doThere()
else:
doThisMostOfTheTime()
Esta construcción se hace mucho , pero dado que repasa todas las condiciones antes de llegar a las demás, tengo la sensación de que no es muy eficiente, y mucho menos Pythonic. Por otro lado, necesita saber si se cumple alguna de esas condiciones, por lo que debería probarlo de todos modos.
¿Alguien sabe si esto se podría hacer de manera más eficiente y cómo hacerlo o es simplemente la mejor manera de hacerlo?
if not something.startswith("th"): doThisMostOfTheTime()
y hacer otra comparación en la else
cláusula.
something
, o se realizan comparaciones similares varias veces en el mismo valor?
sort
las cosas en las que está ejecutando su if / else ... encadenar, de modo que todos los elementos con los que una de las condiciones coincidirá estén en un extremo y el resto en el otro? Si es así, puede ver si es más rápido / más elegante o no. Pero recuerde, si no hay problemas de rendimiento, es demasiado pronto para preocuparse por la optimización.