Python xrange 和range的区别

range(1000)会返回一个长度为1000的数组,

而xrange(1000)会返回一个生成器,在需要的情况下返回一个数字,此时空间的占用情况会大为减少。

所以为了提升性能,在做循环的时候,应该尽可能的使用xrange,除非需要用range返回一个数组。

In [9]: xrange(5)
Out[9]: xrange(5)

In [10]: range(5)
Out[10]: [0, 1, 2, 3, 4]

In [11]: list(xrange(5))
Out[11]: [0, 1, 2, 3, 4]

In [12]: print type(xrange(4))
<type 'xrange'>

In [13]: print type(range(4))
<type 'list'>

在使用Python3时,发现以前经常用的xrange没有了,python3的range就是xrange。

Python2中,

>>> type(range(10))
<type 'list'>
可以发现,Python2中range的返回值是list,这意味着内存将会分布相应的长度的空间给list。

Python3中,

>>> type(range(10))
<class 'range'>
Python3中返回的是一个range对象,并没有将数据完全实例化,所以内存中只有一个对象的空间。

Python3中还有类似其他的一些改动,是对Python2的优化,具体使用中需要注意!
--------------------- 
作者:浅笑古今 
来源:CSDN 
原文:https://blog.csdn.net/u012735708/article/details/81910029 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/bl128ve900/article/details/94406221