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()更节省空间。

 

 

 

而是一个生成器。