设为首页 加入收藏

TOP

Python的range和xrange
2014-11-24 13:09:54 来源: 作者: 【 】 浏览:0
Tags:Python range xrange

在Python中range和xrange是不同的,你正确使用了吗?两者的区别是微妙的。为了简单起见,这里省略两个函数的可选参数start和step。range返回值和想象的一样:一个从0开始指定长度的连续整数序列。然而,xrange返回一个"xrange 对象",该对象非常类似于迭代器。如果你曾经研究过迭代器,则两者的区别就很明显了。下面是个例子:


range(1000000)


xrange(1000000)


range(1000000)会返回一个100万个整数的序列,而xrange(1000000)会返回(本质上)一个迭代序列。显然xrange支持迭代,而range不支持。这种收益是很小的,因为(用Python手册的话说)"当需要元素的时候,xrange仍然要创建它们"。但是无论需要的序列多大,每次遍历时xrange消耗相同量的内存。在遍历极端的大序列时,这是相对于range的很大优势。另一个优势也是明显的:当你的代码在遍历已经产生的序列时调用break的话, xrange显然比range要好,因为xrange会消耗更少的内存。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux Shell:字符串长度 下一篇HTML5是如何使用鼠标滚轮事件的

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: