Python的range和xrange
range
函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。
range示例:
>>> range(6) [0, 1, 2, 3, 4, 5] >>> range(0,6,2) [0, 2, 4]
xrange
函数说明:语法上和range完全相同,所不同的是生成的不是一个数组,而是一个生成器。
xrange示例:
>>> xrange(6) xrange(6) >>> list(xrange(6)) [0, 1, 2, 3, 4, 5] >>> xrange(0,6,2) xrange(0, 6, 2) >>> list(xrange(0,6,2)) [0, 2, 4]
range和xrange都在循环时用的比较多,下面来分析一下他们在循环里面的各自表现:
如果循环时用range,由上面结果我们也可以看出,上来就会生成一个数组。若是元素个数少还可以接受,但是如果元素个数非常多,那岂不是要开辟很大的内存来存放这个数组?这对让内存空间亚历山大呀。
如果使用xrange,xrange返回的是一个生成器,一边循环一边计算,每次只返回一个值,这样就不必开辟这么大的内存空间了。
因此,在循环里尽量使用xrange吧,随着元素个数增多,xrange性能要比range好的多。