[Python-es] Pythoniano y c niano

kausdiv kausdiv en gmail.com
Jue Dic 27 23:44:18 CET 2012


Precisamente a esa forma de código y las recomendaciones que has hecho, 
es lo que creo que marca la diferencia entre un programa pytoniano y uno 
más estilo c, java, etc.
Muy bueno el código que has puesto. Refleja lo que quería decir y de 
camino se aprende. !!

> Pongo la versión que sería "comparable" con ésta (menos optimizada que
> la que usaba sets):
>
> def fprimos(n,x):
>
>    def isprime(n):
>      return all(n%k!=0 for k in range(2,n))
>
>    return [x for x in range(n,x) if isprime(x)]
>
> en una sóla línea:
>
> def fprimos(n,x):
>    return [x for x in range(n,x) if all(n%k!=0 for k in range(2,n))]
>
>
>
> Algunas recomendaciones:
>
> 1) evitar almacenar estados intermedios (fuera contadores y variables
> intermedias)
> 2) huir del list.append() (usar las "compresiones" en su lugar)
> 3) la mejor optimización es saber usar los recursos del lenguaje (sum,
> max/min, all/any, sorted, zip, reduce, itertools, collections, ...)
> 4) evitar convertir los interadores a listas hasta el último momento
> (usar 'itertools')
>
>
>
>



Más información sobre la lista de distribución Python-es