range与xrange的区别

Posted always-fight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了range与xrange的区别相关的知识,希望对你有一定的参考价值。

一、Python中range()与xrange()有什么区别

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

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

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

range(1,6,2)
#[1, 3, 5]
#也就是说range()返回的是个列表

 

 xrange用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器

xrange(6)
#xrange(6)
list(xrange(6))
#[0, 1, 2, 3, 4, 5]

xrange(1,6)
#xrange(1, 6)
list(xrange(1,6))
#[1, 2, 3, 4, 5]

xrange(1,6,2)
#xrange(1, 7, 2)
list(xrange(1,6,2))
#[1, 3, 5]
#xrange()返回的是个生成器

 

 由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。

 

以上是关于range与xrange的区别的主要内容,如果未能解决你的问题,请参考以下文章

xrange与range之间的区别

python 基础 2.7 range与xrange的区别

python 中range与xrange的区别

Range和xrange的区别

python(47):range和xrange的区别和联系

range()和xrange()的区别