zoukankan      html  css  js  c++  java
  • ZH奶酪:Python中range和xrange的区别

    直观说明:http://ciniao.me/article.php?id=17

    原因分析:http://blog.csdn.net/liangliyin/article/details/5980505

    在Python中range和xrange是不同的,你正确使用了吗?两者的区别是微妙的。为了简单起见,这里省略两个函数的可选参数start和step。range返回值和想象的一样:一个从0开始指定长度的连续整数序列。然而,xrange返回一个"xrange 对象",该对象非常类似于迭代器。如果你曾经研究过迭代器,则两者的区别就很明显了。下面是个例子:

    range(1000000)

    xrange(1000000)

    range(1000000)会返回一个100万个整数的序列,而xrange(1000000)会返回(本质上)一个迭代序列。显然xrange支持迭代,而range不支持。这种收益是很小的,因为(用Python手册的话说)"当需要元素的时候,xrange仍然要创建它们"。但是无论需要的序列多大,每次遍历时xrange消耗相同量的内存。在遍历极端的大序列时,这是相对于range的很大优势。另一个优势也是明显的:当你的代码在遍历已经产生的序列时调用break的话, xrange显然比range要好,因为xrange会消耗更少的内存。

  • 相关阅读:
    IO细述
    如何对HashMap按键值排序
    Java编程思想重点
    Java笔试题解答和部分面试题
    mysql优化
    MySQL 创建数据库并且指定编码
    JDBC 工具类
    JSP include标签和include指令
    SpingMVC ModelAttribute的用法
    Java 获取amr音频格式的音频长度
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/4233853.html
Copyright © 2011-2022 走看看