首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python xrange 与 rang

range可以返回一个可以用于所有目的的普通列表对象,而xrange将返回一个特殊目的的对象,尤其适用于迭代操作,但是xrange并不返回一个迭代器,如果需要这样一个迭代器,可以调用iter(xrange...>>> print range(5) [0, 1, 2, 3, 4] >>> print xrange(5) xrange(5) >>>  其中,range将返回一个普通列表,但是xrange将返回一个特殊目的对象...xrange示例:  >>> xrange(5) xrange(5) >>> list(xrange(5)) [0, 1, 2, 3, 4] >>> xrange(1,5) xrange(1, 5) >...>> list(xrange(1,5)) [1, 2, 3, 4] >>> xrange(0,6,2) xrange(0, 6, 2) >>> list(xrange(0,6,2)) [0, 2, 4]...: xrange(100) 0 1     所以xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange吧,除非你是要返回一个列表。

39920

·python·用生成器和迭代器实现自己的xrange

num -= 1  >>> l = list(simple_xrange(8))  >>>print l  [8, 7, 6, 5, 4, 3, 2, 1]  在上例中我们实现了一个简单的xrange,...但还是看不出这个simple_xrange是怎么执行的,现在我们来看看下面的实验:  >>> it = simple_xrange (8)  >>> it.next()  8  >>> it.next(...的执行过程:  1、    当执行it = simple_xrange(8)时,simple_xrange返回一个生成器,即it成为一个生成器。  ...把上面的1234条目跟上文python manual的说法对照一下,是相互呼应的,这样我们就理解了xrange的实现机理,从而可以利用yield语句写出自己的xrange了。        ...搞了这么久,实现自己的xrange有必要吗?当然是有的,xrange只是产生了一个系列,如果要对这个系列有什么扩展的话,写出来的代码就比较难看了。

49520

Python 学习入门(32)—— xrangerange

然而,xrange返回一个"xrange 对象",该对象非常类似于迭代器。如果你曾经研究过迭代器,则两者的区别就很明显。...下面是个例子: range(1000000) xrange(1000000) range(1000000)会返回一个100万的整数元素的序列,而xrange(1000000)在本质上会返回一个迭代序列。...显然xrange支持迭代,而range不支持。这种收益是很小的,因为"当需要元素的时候,xrange仍然要创建它们"。但是无论需要的序列多大,每次遍历时xrange消耗相同量的内存。...另一个优势也是明显的:当你的代码在遍历已经产生的序列时调用break的话, xrange显然比range要好,因为xrange会消耗更少的内存。 这两个基本上都是在循环的时候用。...尽量用xrange吧,除非你是要返回一个列表。

47030
领券