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

后端 未结 28 2046
深忆病人
深忆病人 2020-11-22 03:14

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

28条回答
  •  无人及你
    2020-11-22 04:06

    Everyone has explained it greatly. But I wanted it to see it for myself. I use python3. So, I opened the resource monitor (in Windows!), and first, executed the following command first:

    a=0
    for i in range(1,100000):
        a=a+i
    

    and then checked the change in 'In Use' memory. It was insignificant. Then, I ran the following code:

    for i in list(range(1,100000)):
        a=a+i
    

    And it took a big chunk of the memory for use, instantly. And, I was convinced. You can try it for yourself.

    If you are using Python 2X, then replace 'range()' with 'xrange()' in the first code and 'list(range())' with 'range()'.

提交回复
热议问题