![]() |
VOOZH | about |
The range() and xrange() are two functions that could be used to iterate a certain number of times in for loops. In Python3, there is no xrange, but the range function behaves like xrange in Python2. If you want to write code that will run on both Python2 and Python3, you should use range().
Note: The following example is for Python 2, where both range() and xrange() are available.
Output:
The return type of range() is:
<type 'list'>The return type of xrange() is:
<type 'xrange'>
In Python 2, range() consumes more memory because it creates and stores the entire list of values, whereas xrange() returns an xrange object that generates values on demand.
Output:
The size allotted using range() is :
80064
The size allotted using xrange() is :
40
In Python 2, range() returns a list, so it supports list operations such as slicing, concatenation, and repetition. In contrast, xrange() returns an xrange object, which does not support all list operations.
Output:
The list after slicing using range is :
[3, 4, 5]
The list after slicing using xrange is :
TypeError: sequence index must be integer, not 'slice'
In Python 2, xrange() generates values on demand using lazy evaluation, making it more memory-efficient and generally faster than range() for large sequences.
Important Points:
range() | xrange() |
|---|---|
| Returns a list of integers. | Returns an xrange object. |
| Execution speed is slower. | Execution speed is faster. |
| Takes more memory as it keeps the entire list of elements in memory. | Takes less memory because values are generated on demand. |
| List operations can be performed on the result of range() in Python 2. | Such operations cannot be performed on xrange(). |
| In python 3, xrange() is not supported. | In python 2, xrange() is used to iterate in for loops. |