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生成器?