[pyar] De Alejandro: otra duda

Ricardo Aráoz ricaraoz en gmail.com
Mie Jun 26 01:03:04 ART 2013


El 25/06/13 23:18, German Jimenez escribió:
> Es de muy noob esto pero no logro intuir porque sería el switch-case 
> simulado con un diccionario mas eficiente que el if-elif, pensé que 
> sería al revés, o una comparación de igualdad es mas lenta que una 
> búsqueda en un diccionario + una llamada a una función?
>
> def ifelif(n):
>
>     if n == 0: pass
>
>     elif n == 1: pass
>
>
> def simulswitch(n):
>
>     def foo(): pass
>
>     def bar(): pass
>
>     dic = {0:foo,1:bar}
>
>     dic[n]()
>
>
> ¿He cometido algún error en hacer ésta comparación?

No entiendo tu código.
Pero en cuanto al tema del diccionario versus el if-elif, basta con 
decir que en el if-elif tenés una búsqueda lineal, si tenés 30 cases vas 
a tener que ir comparando una por una hasta encontrar la que se cumple. 
Con el diccionario es más rápido.




More information about the pyar mailing list