2011-08-25 13 views
30

Esiste una versione illimitata di range (o xrange per Python 2) oppure è necessario definirla manualmente? Per esempioIntervallo illimitato()

squares = (x*x for x in range(n)) 

può solo darmi un generatore per le piazze fino a (n-1)**2, e non riesco a vedere alcun modo ovvio per chiamare range(infinity) in modo che solo continua a Truckin'.

risposta

47

che stai descrivendo l'uso di base di itertools.count:

import itertools 
squares = (x*x for x in itertools.count())