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 Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/