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

后端 未结 28 2082
深忆病人
深忆病人 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:16

    range creates a list, so if you do range(1, 10000000) it creates a list in memory with 10000000 elements. xrange is a generator, so it evaluates lazily.

    This brings you two advantages:

    1. You can iterate longer lists without getting a MemoryError.
    2. As it resolves each number lazily, if you stop iteration early, you won't waste time creating the whole list.

提交回复
热议问题