What the heck is an xrange?
Pop quiz: how would you implement Python's xrange
(known in Python 3.x as range
) in Python and without making a list or any other sequence type?
If you answered "with a generator," you'd be wrong! And it's likely because you've only ever used an xrange
in code like:
for i in xrange(10):
# do something 10 times
In this case (where the xrange
is only used as an "argument" to a for
loop), a generator would probably suffice. But, in fact, xrange
is implemented as an object, not a function or generator. Why? Let's find out.