Python xrange与range的区别


xrange 与 range


xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。

这里写图片描述

要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。
xrange 和 range 这两个基本上都是在循环的时候用。

for i in range(0, 100):
    print i

for i in xrange(0, 100):
    print i 

range会直接生成一个list对象,而xrange则不会直接生成一个list,而是每次调用返回其中的一个值.

所以xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表。


python3中的 range


range()是python的内置函数,用于创建整数的列表,可以生成递增或者递减的数列。range也是python的内置函数,用于创造xrange对象用于迭代。
在python3中,range()这种实现被移除了,保留了xrange()的实现,且将xrange()重新命名成range()。
在python3中,range object在python里增加了attributes,’count’,’index’,’start’,’step’,’stop’,且能支持slicing。python3的range()在xrange()的基础上变的更强大了


参考文献


Python xrange与range的区别

python3为什么取消了range生成器?

猜你喜欢

转载自blog.csdn.net/jiandanjinxin/article/details/78849794