What is the difference between range and xrange functions in Python 2.X?

Apparently xrange is faster but I have no idea why it's faster (and no proof besides the anecdotal so far that it is faster) or what besides that is different about

for i in range(0, 20):
for i in xrange(0, 20):

range() vs xrange() in Python, In Python 2.x: range creates a list, so if you do range(1, 10000000) it creates a list in memory with 9999999 elements. xrange is a sequence object that evaluates  In Python 2.x, we had the two underlying methods to generate a list of integers within a given range. However, in Python 3, range () was decommissioned and xrange () renamed to range (). Hence, in Python 3, we get a single function that could produce the numbers from a given range.


range creates a list, so if you do range(1, 10000000) it creates a list in memory with 9999999 elements.

xrange is a generator, so it is a sequence object is a that evaluates lazily.

This is true, but in Python 3, .range() will be implemented by the Python 2 .xrange(). If you need to actually generate the list, you will need to do:

list(range(1,100))

What is the difference between range and xrange functions in , In Python 2.x, we had the two underlying methods to generate a list of integers If you are using Python 2.x, then only the difference between xrange() and range​() is  To generate the list or sequence of elements, Python version 2 has two inbuilt handy functions called range() and xrange(). Whereas, xrange is deprecated from Python version 3. Before going into the difference between range and xrange, let’s see what it is. The function range and xrange generated the series of numbers.


Remember, use the timeit module to test which of small snippets of code is faster!

$ python -m timeit 'for i in range(1000000):' ' pass'
10 loops, best of 3: 90.5 msec per loop
$ python -m timeit 'for i in xrange(1000000):' ' pass'
10 loops, best of 3: 51.1 msec per loop

Personally, I always use .range(), unless I were dealing with really huge lists -- as you can see, time-wise, for a list of a million entries, the extra overhead is only 0.04 seconds. And as Corey points out, in Python 3.0 .xrange() will go away and .range() will give you nice iterator behavior anyway.

Python xrange() vs range() explained with examples, range() and xrange() are two functions that can be used to iterate a certain number of times in a for loop in Python. xrange()is only used in, Python 2. So to run any code in both a = range(1,10000). x = xrange(1,10000). range() and xrange() are two functions that can be used to iterate a certain number of times in a for loop in Python. xrange() is only used in, Python 2. So to run any code in both Python 2 and Python 3 you should use range() function. range() – It will create a list of values from depending on the range specified


xrange only stores the range params and generates the numbers on demand. However the C implementation of Python currently restricts its args to C longs:

xrange(2**32-1, 2**32+1)  # When long is 32 bits, OverflowError: Python int too large to convert to C long
range(2**32-1, 2**32+1)   # OK --> [4294967295L, 4294967296L]

Note that in Python 3.0 there is only range and it behaves like the 2.x xrange but without the limitations on minimum and maximum end points.

What does xrange() function do in Python?, However, xrange() is used only in Python 2.x whereas range() is used in Python 3.x. of numbers; Step: The difference between each number in the sequence. Range in python 2 returns a list so a big range will generate a large list potentially needing a large amount of memory. Xrange in python 2 returns a generator, not a list. The generator returns the list elements upon demand, typically only one element at a time, so xrange is much gentler in its memory demands.


xrange returns an iterator and only keeps one number in memory at a time. range keeps the entire list of numbers in memory.

Python 3's range is more powerful than Python 2's xrange, In Python 2, the range function returned a list of numbers: Before we take a look at differences between xrange and range objects, let's take a methods which Python 2's xrange objects fully implement: | __getitem__() | x. The range python function create a list with elements equal to number we given to that range where as xrange create one element at any given time. This saves use to reduce the usage of RAM. With xrange the memory usage is in control from below screen shot where as with range function, the memory hikes it self to run a simple for loop program


Difference between range and xrange in Python, In Python 2.x, we can use both range and x range functions, whereas, in Python 3​, there is no xrange. However, the range function available in  Python 2 used to have two functions that could be used to iterate a certain number of times in for   loops, range   and xrange  . In Python 3, there is no xrange  , but the range   function behaves like xrange   in Python 2. The way things were


Python range() Function Explained with Examples, The step value is 2 so the difference between each number is 2. Practice Problem. Generate a  range() vs xrange() in Python range() and xrange() are two functions that could be used to iterate a certain number of times in for loops in Python. In Python 3, there is no xrange , but the range function behaves like xrange in Python 2.If you want to write code that will run on both Python 2 and Python 3, you should use range().


Generators, The simplification of code is a result of generator function and we will compare different implementations that implement a function, "firstn", This can be illustrated by comparing the range and xrange built-ins of Python 2.x. Before we get started, let's talk about what makes xrange and range different. For the most part, xrange and range are the exact same in terms of functionality. They both provide a way to generate a list of integers for you to use, however you please. The only difference is that range returns a Python list object and xrange returns an xrange object.