python中xrange与range的区别

今天遇到xrange与range,特意差查了一下两者的区别: 相同点:(用法相同) range 函数为range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长 xrange 函数为xrange([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长 区别: range生成的是序列,list对象 xrange是一个生成器 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 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。 >>> 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性能优很多,因为不需要一上来就开辟一块很大的内存空间。 xrange 和 range 这两个基本上都是在循环的时候用。 for i in range(0, 10): print i for i in xrange(0, 10): print i 这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象: a = range(0,10) print type(a) print a print a[0], a[1] 输出结果:

猜你喜欢

转载自www.cnblogs.com/Suomy/p/9002008.html