【编程】Python xrange() 函数

range() 与 xrange()

range() 和 xrange() 都是Python的内置函数,都可以根据给定范围生成整数的序列。它们的区别只在 Python 2.x 和 Python 3 当中才有,在 python 3.x 后,两个函数的功能就一样了。

Python 2.x 版本

  • range() 创建一个列表,例如,如果指定范围(1, 10000000),则它会在内存中创建一个含 9999999 个元素的列表,会消耗大量的内存资源。
  • xrange() 是一个序列对象,它不会事先完全创建列表,只在需要的时候才会创建。

Python 3 版本

  • range()xrange()一样, 如果需要生成列表:
list(range(1,10000000))

如果想兼容 Python 2 和 Python 3, 需要使用 xrange()。

比较优势:

  • range()

在需要多次访问遍历的时候,range() 类型速度较快,xrange() 每次都需要重新构造整数对象,所以会减慢速度。xrange()不能适用于所有情况,比如需要一个实在列表的时候,它不支持 slices 方法, 或其他任何列表方法。

  • xrange()

xrange() 类型的优势是,消耗内存资源是一定的,不受范围大小的影响。 它属于模糊序列类型,没有实际的列表和它对应,当遍历大范围的序列时,比较有优势。

语法

range(start, stop, step)     
xrange(start, stop, step)

返回类型

  • range() – 返回一个列表
  • xrange() – 返回生成对象,需要依靠循环程序才能显示数据,只显示部分范围

在Python 3.x 版本, xrange() 函数不在存在,range() 函数实现了xrange()在Python 2.x 中的功能, 为保存程序的兼容性,可以使用Python提供的 2to3 转换工具进行代码转换, 减少不必要的麻烦。



【编程】Python filter() 函数
【编程】Python 字符串和整数
【编程】Python range() 函数
【编程】Python 多线程编程
【编程】Python 多线程和进程
【编程】Python 读写CSV文件
【编程】Python 解析XML
【编程】Python 终止程序
【编程】Python 随机数
【编程】Python 异常处理
【编程】Python 日期和时间
【编程】Python 多线程套接字
【编程】Python 套接字
【编程】Python FTP
【编程】Python 网页

此条目发表在人工智能, 服务器, 程序开发分类目录,贴了, , 标签。将固定链接加入收藏夹。