I found myself questioning why others are looping using xrange, while I’ve been using the boring, non-x range.

Gotta love the fact that I was able to use the built-in in “help” module in Python to answer this quickly.

>>> help(xrange)
Help on class xrange in module __builtin__:

class xrange(object)
| xrange([start,] stop[, step]) -> xrange object
|
| Like range(), but instead of returning a list, returns an object that
| generates the numbers in the range on demand. For looping, this is
| slightly faster than range() and more memory efficient.