Python3如何使用range函数替代xrange函数
在Python2中xrange()创建迭代对象的用法是非常流行的。比如:for循环或者是列表/集合/字典推导式。这个表现十分像生成器(比如。"惰性求值")。但是这个xrange-iterable是无穷的,意味着你可以无限遍历。由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange()函数比range()更快(比如for循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。
在Python3中,range()是像xrange()那样实现以至于一个专门的xrange()函数都不再存在(在Python3中xrange()会抛出命名异常)。
解决方法
上面讲的原因比较官方,可能很多人不是理解,通俗点讲就是:
因为python3中取消了range函数,而把xrange函数重命名为range,所以现在直接用range函数即可。
因此,在python3版本中,我们只需要直接用range函数就可以了!而且从某种意义上来说,xrange()函数用法与range()完全相同。如下:
range
函数说明:range([start,]stop[,step]),根据start与stop指定的范围以及step设定的步长,生成一个列表。
>>>range(10)
[0,1,2,3,4,5,6,7,8,9]
>>>range(2,10)
[2,3,4,5,6,7,8,9]
>>>range(2,10,2)
[2,4,6,8]
>>>type(_)
xrange
函数说明:和range的用法完全相同,但是返回的是一个生成器。
>>>xrange(10)
xrange(10)
>>>xrange(2,10)
xrange(2,10)
>>>xrange(2,10,2)
xrange(2,10,2)
>>>type(_)
>>>list(xrange(2,10,2))
[2,4,6,8]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。