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 好的多.
注意, 在 python3.x 中, xrange 被废除了, range 功能跟 xrange 相同.
来源: http://www.bubuko.com/infodetail-2575327.html