内置函数range()返回一个list;
xrange()返回一个xrange对象,xrange对象是一个generator,而且是一个sequence
>>> type(range(10))
<type 'list'>
>>> type(xrange(10))
<type 'xrange'>
>>> dir(xrange)
['__class__', '__delattr__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__iter__', '__len__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__', '__str__']
因此,当需要生成大范围数据时(如百万级),range会一次性的生成所有的数据,并以list形式返回,这样就会占用大量的内存;而xrange是一个generator,每次按需生成一个值,只占用少量的内存空间。
通常,range和xrange经常用在for循环中,当for不需要遍历所有的元素(如含有break语句),尤其只遍历起始的少量元素时,此时xrang就有性能优势,因为它不用像range那样一次性地生成所有的元素,造成浪费。
superwind@ubuntu:~$ python -m timeit 'for i in range(1000000):pass'
10 loops, best of 3: 52.6 msec per loop
superwind@ubuntu:~$ python -m timeit 'for i in xrange(1000000):pass'
10 loops, best of 3: 28.8 msec per loop
分享到:
相关推荐
range 函数说明:range([start...xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。xrange示例:复制代码 代码如下:>>> xrange(5)xrange(5)>>> list(xrange(5))[0, 1, 2, 3, 4]>>>
本篇文章主要介绍了浅谈Python中range和xrange的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
软件开发网已经给大家介绍过range和xrange的区别的基础知识,有兴趣的朋友可以参阅: python中xrange和range的区别 python中range()与xrange()用法分析 本次小编给大家带来的是深入理解range和xrange之间的区别。 ...
在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典...在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange
本文实例讲述了python中range()与xrange()用法。分享给大家供大家参考,具体如下: 据说range比xrange开销要大,原因是range会直接生成一个list对象,而xrange每次调用返回其中的一个值(参考://...
xrange.py Python 2.7内置xrange的纯Python实现,并且从该版本的Python ... 没有充分的理由在代码中使用它,它的目的是记录和描述xrange或range内建xrange的行为,以及通常实现Sequence协议的对象的行为。 在了解更多
1:为什么学习 Python 2:通过什么途径学习 ...19:xrange 和 range 的区别 20:文件操作时:xreadlines 和 readlines 的区别 21: 列列举布尔值为 False 的常见值 22. 字符串、列表、元组、字典每个常用的 5 个方法
本文实例讲述了python中xrange用法。分享给大家供大家参考。具体如下: 先来看如下示例: >>> x=xrange(0,8) ...IndexError: xrange object index out of range >>> x=range(0,8) >>> print x [0, 1, 2, 3, 4,
Python提供了生成和返回整数序列的内置函数range及xrange,虽然这两个函数在功能上是差不多的,但其实现原理还是有差别的。range(n, m)返回的是一个从n到(m-1)的连续的整数列表,而xrange(n, m)返回的却是一个特殊的...
本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明。 1. range与arange的比较 (1)相同点:A、参数的可选性、默认缺省值是一样的;B、结果均包括...
x范围 有用的DOM <=> xpath <=> Range函数套件 更多信息即将到来!
在Python 2.x中xrange()创建迭代对象的用法是非常流行的,比如:for循环或者是...在Python 3.x中,range()的实现方式与xrange()函数相同,所以就不存在专用的xrange()(在Python 3.x中使用xrange()会触发NameError)。
##关于 Python 的事情要记住:###1- range vs xrange range 函数创建一个包含由输入定义的数字的列表。 xrange 函数创建一个数字生成器。 您会经常看到 xrange 的使用频率比 range 高得多。 这只是一个原因 - 资源...
10道python初学者面临的基础问题 Python中是否需要缩进? Python数组和列表有什么区别? Python中的函数是什么? 什么是__init__?...range和xrange有什么区别? 如何在Python中写注解? Python中生成器是什么?