range和xrange的区别

只有在python2中才有xrange和range,python3中没有xrange,并且python3中的range其实是py2中的xrange。下面说说py2的range和xrange的区别

在py2中,range得到的是一个列表

x = range(0, 5)
print(type(x))  # 结果是list
print(x) # 结果是[0,1,2,3,4]

xrange得到的是一个生成器对象

x = xrange(0, 5)
print(type(x))  # 结果是一个生成对象
print(x)  # 结果是xrange(0,5)

再用py3

xrange的用法与range相同,不同的是xrange并不是生成列表,而是作为一个生成器。即数据生成一个取出一个。

相对来说,xrange比range性能优化很多,因为他不需要一下子开辟一块很大的内存,特别是数据量比较大的时候。

 
原文地址:https://www.cnblogs.com/xxxsans/p/13341407.html