Python中range和xrange区别

所有Python的学习者都会遇到这个问题,range和xrange都可以是列表生成器,它们有什么区别?

range

函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。range一上来就直接开辟一大块内存,返回一个完整list对象。

xrange

函数说明:用法与range完全相同,所不同的是生成的不是一个list对象,而是一个生成器,在每次调用时返回其中的一个值。

所以显而易见,除非你真的是想一次性返回整个列表,否则,在循环中,xrange的性能要大大优于range,特别是列表很大或者内存吃紧的时候,所以,循环中请尽量用xrange.

more ...