这两个基本上都是在循环的时候用。
range函数返回的是一个列表,而xrange返回的是其中的值。
>>> rg = range(0,10) >>> type(rg) list >>> for i in rg: ....: print i ....: 0 1 2 3 4 5 6 7 8 9 >>> xrg = xrange(0,10) >>> type(xrg) xrange >>> for i in xrg: ....: print i ....: 0 1 2 3 4 5 6 7 8 9
>>> for i in range(10000000): .... print i 由于list占用内存太大,系统无法分配足够大的内存,执行会出错 >>> for i in xrange(10000000): ... print i 1 2 ... 10000000
所以xrange做循环的性能比range好,尤其是返回很大的时候,所有如果不是非要获得一个列表,应该尽量用xrange。