Python Forum
Thread Rating:
  • 2 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
range and xrange
#9
In Python 3 range() is an iterator.
That means that it will not generate all values at once and produce a lust for example but it returns one value per call.
What I mean:
>>> r = range(5)
>>> i = iter(r)
>>> r
range(0, 5)
>>> i
<range_iterator object at 0x7f52ed2cdcc0>
>>> next(i)
0
>>> next(i)
1
>>> next(i)
2
>>> next(i)
3
>>> next(i)
4
>>> next(i)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>> 
Looping over a range(5) is not looping over a list ( what it was in Python 2 range() ) but instead next() is called and 0 is produced the first time. Than next() is called again and is produced 1. It keeps the state so all is in order. Until all vallues are out and StopIteration is raised.

Here is the equivalent of a for loop as it is in above code:
>>> r = range(5)
>>> i = iter(r)
>>> while True:
...     try:
...         next(i)
...     except StopIteration:
...         break
... 
0
1
2
3
4
>>> 
"As they say in Mexico 'dosvidaniya'. That makes two vidaniyas."
https://freedns.afraid.org
Reply


Messages In This Thread
range and xrange - by amrita - Jun-08-2017, 10:01 AM
RE: range and xrange - by buran - Jun-08-2017, 10:05 AM
RE: range and xrange - by Larz60+ - Jun-08-2017, 10:22 AM
RE: range and xrange - by amrita - Jun-08-2017, 11:00 AM
RE: range and xrange - by buran - Jun-08-2017, 11:01 AM
RE: range and xrange - by snippsat - Jun-08-2017, 11:04 AM
RE: range and xrange - by amrita - Jun-08-2017, 11:09 AM
RE: range and xrange - by buran - Jun-08-2017, 11:15 AM
RE: range and xrange - by wavic - Jun-08-2017, 02:48 PM
RE: range and xrange - by nilamo - Jun-08-2017, 04:12 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  matplotlib x axis range goes over the set range Pedroski55 5 3,373 Nov-21-2021, 08:40 AM
Last Post: paul18fr
  Define a range, return all numbers of range that are NOT in csv data KiNeMs 18 7,357 Jan-24-2020, 06:19 AM
Last Post: KiNeMs
  difference between range in py3 and xrange in py2 Skaperen 10 7,203 Jun-23-2018, 07:50 PM
Last Post: wavic
  Python2.7 xrange for loops - repeating though values already considered? nick5990 3 3,086 Mar-17-2018, 12:42 AM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020