El día 26 de diciembre de 2012 15:11, Ander Garmendia
<[email protected]> escribió:
> Buenas,
> soy nuevo en el universo python y llevo un tiempo en esta lista y esta
> pregunta me ha llamado la atención.
> ¿ Hay un modo "pythonico" de hacer las cosas ?
> Viendo las soluciones solo veo algoritmos adaptados a las estructuras de
> control de python.
> ¿ Es cosa mía o se me esta pasando algo ?
Yo dirías que estamos viendo un algoritmo típico de programación
imperativa y no hay mucho más qué hacer.
En cambio, si usáramos la Criba de Eratóstenes para obtener los
primos, entonces podíamos usar cosas tan pitónicas como los sets con
los que se puede optimizar mejor nuestro código (y si hacer una sola
división):
def primes(n):
res = set(range(1, n+1))
for i in xrange(2, n+1):
if i in res:
res -= set(xrange(i+i, n+1, i))
return res
Si aún quieres que sea más distinto de lo que se ve en C, se puede dar
una vuelta más de tuerca y dejarlo así de extraño:
def primes(n):
criba = {1,2}|set(range(3,n+1,2))
seq = (set(range(i+i,n+1,i)) for i in xrange(3,n+1,2) if i in criba)
for x in seq:
criba -= x
return criba
--
Hyperreals *R: http://ch3m4.org/blog
Quarks, bits y otras criaturas infinitesimales
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/