range函数 将会一下子迭代生成一个序列
xrange函数 将会产生一个生成器,而不是直接生成列表,在资源占用上比较节省
在Python 2.x中,经常会用xrange()
创建一个可迭代对象,通常出现在“for循环”或“列表/集合/字典推导式”中。这种行为与生成器非常相似(如”惰性求值“),但这里的xrange-iterable
无尽的,意味着可能在这个xrange
上无限迭代。由于xrange
的“惰性求知“特性,如果只需迭代一次(如for循环中),range()
通常比xrange()
快一些。不过不建议在多次迭代中使用range()
,因为range()
每次都会在内存中重新生成一个列表。
在Python 3中,range()
的实现方式与xrange()
函数相同,所以就不存在专用的xrange()
(在Python 3中使用xrange()会触发NameError)。
新闻热点
疑难解答