python中xrange和range的比较

来源:互联网 发布:mac dare you价格 编辑:程序博客网 时间:2024/05/13 19:17

range
函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。

代码示例:

>>> range(5)
[0,
1, 2, 3, 4
]
>>> range(1,5
)
[
1, 2, 3, 4
]
>>> range(0,6,2
)
[0,
2, 4]

 

xrange
函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。

代码示例:

>>> 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会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。这两个函数一般都在循环的时候使用。
>>>for i in range(100):
print i
>>>for i in xrange(100):
print i
这两个输出的结果都是一样的,但是实际上有很多不同:
range会直接生成一个list对象;而xrange则不会直接生成一个list,而是每次调用返回其中的一个值。
 
0 0
原创粉丝点击