Python的range和xrange

Posted ralap7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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好的多。

 

注意,在python3.x中,xrange被废除了,range功能跟xrange相同。


以上是关于Python的range和xrange的主要内容,如果未能解决你的问题,请参考以下文章

python中xrange和range(转)

python2中range和xrange的区别

Python的range和xrange

python中的range和xrange有啥区别? [复制]

Python细说 xrange 和 range 的区别

range和xrange