Download as odt, pdf, or txt
Download as odt, pdf, or txt
You are on page 1of 1

 What is the difference between xrange and range in Python?

xrange() and range() are quite similar in terms of functionality. They both generate a


sequence of integers, with the only difference that range() returns a Python list,
whereas, xrange() returns an xrange object.
So how does that make a difference? It sure does, because unlike range(), xrange()
doesn't generate a static list, it creates the value on the go. This technique is commonly used
with an object type generators and has been termed as "yielding".
Yielding is crucial in applications where memory is a constraint. Creating a static list as in
range() can lead to a Memory Error in such conditions, while, xrange() can handle it optimally
by using just enough memory for the generator (significantly less in comparison).
for i in xrange(10): # numbers from o to 9
print i # output => 0 1 2 3 4 5 6 7 8 9

for i in xrange(1,10): # numbers from 1 to 9


print i # output => 1 2 3 4 5 6 7 8 9

for i in xrange(1, 10, 2): # skip by two for next


print i # output => 1 3 5 7 9
Note:  xrange has been deprecated as of Python 3.x. Now range does exactly the same
what xrange  used to do in Python 2.x, since it was way better to use xrange() than the original
range() function in Python 2.x.

You might also like