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')
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/