range和xrange这两个函数基本都是在循环的时候使用的。
>>> for x in range(10,21,1): ... print x ... 10 11 12 13 14 15 16 17 18 19 20 >>> for y in xrange(10,21,1): ... print y ... 10 11 12 13 14 15 16 17 18 19 20 >>>
这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:
>>> a = range(10,20,1) >>> a [10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> type(a) <type 'list'> >>> print a [10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>>
而xrange则不会直接生成一个list,而是每次调用返回其中的一个值 ,它只是生成了一个而是一个生成器。
>>> b = xrange(10,20,1) >>> b xrange(10, 20)
所以xrange做循环的性能比range好,尤其是返回很大的时候!
因此使用xrange()比使用range()更节省空间。
而是一个生成器。