Is there an unbounded version of range
(or xrange
for Python 2), or is it necessary to define it manually? For example
squares = (x*x for x in range(n))
can only give me a generator for the squares up to (n-1)**2
, and I can't see any obvious way to call range(infinity)
so that it just keeps on truckin'.
You're describing the basic use of itertools.count
:
import itertools
squares = (x*x for x in itertools.count())