zoukankan      html  css  js  c++  java
  • python中xrange和range的异同

        range  
            函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。  
        range示例:   
          
        1.>>> range(5)   
        2.[0, 1, 2, 3, 4]   
        3.>>> range(1,5)   
        4.[1, 2, 3, 4]   
        5.>>> range(0,6,2)  
        6.[0, 2, 4]  
          
        xrange  
            函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。  
        xrange示例:   
          
        1.>>> xrange(5)  
        2.xrange(5)  
        3.>>> list(xrange(5))  
        4.[0, 1, 2, 3, 4]  
        5.>>> xrange(1,5)  
        6.xrange(1, 5)  
        7.>>> list(xrange(1,5))  
        8.[1, 2, 3, 4]  
        9.>>> xrange(0,6,2)  
        10.xrange(0, 6, 2)  
        11.>>> list(xrange(0,6,2))  
        12.[0, 2, 4]  
          
            由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用:  
          
        1.for i in range(0, 100):   
        2.print i   
        3.for i in xrange(0, 100):   
        4.print i   
          
            这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:  
          
        1.a = range(0,100)   
        2.print type(a)   
        3.print a   
        4.print a[0], a[1]   
          
            输出结果:  
          
        1.<type 'list'>  
        2.[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,.. ,99]  
    
    [python] view plain copy
    
            而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:  
          
        1.a = xrange(0,100)   
        2.print type(a)   
        3.print a   
        4.print a[0], a[1]   
          
            输出结果:  
          
        1.<type 'xrange'>  
        2.xrange(100)  
        3.0 1  
          
            所以xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange吧,除非你是要返回一个列表。  
    
    
    顶
        1
    
    踩
        0
    
     
     
    
        上一篇
        python re模块
        下一篇
        VS2010快捷键
    
    我的同类文章
    Python(15)
    
        •python用于url解码和中文解析的小脚本2013-09-25阅读1049
        •python 特殊函数的用法2012-07-19阅读2276
        •Python之isinstance2012-05-28阅读49872
        •Python之全局变量2012-05-25阅读740
        •python特殊属性和方法的运用2012-05-15阅读6867
    
        •python re模块2012-07-23阅读1014
        •理解Python的双下划线命名(转过来慢慢理解)2012-05-30阅读3412
        •python time模块详解2012-05-26阅读832
        •Python 引用多个模块,调用模块中的函数时...要注意的地方2012-05-24阅读3599
        •Python集合(set)类型的操作2012-05-07阅读232902
    
    更多文章
    
    猜你在找
        Python自动化开发基础 装饰器-异常处理-面向对象编程 day4
        Python自动化开发基础 列表-字典-IO处理 day2
        Python 零基础到实战
        Python基础编程1小时快速实战掌握
        使用python操作Oracle
        python中xrange和range的异同
        python中xrange和range的异同
        python中xrange和range的异同
        python中xrange和range的异同
        Python中range和xrange的异同之处
    
    关闭
    查看评论
    
      暂无评论
    
    您还没有登录,请[登录]或[注册]
    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    核心技术类目
    全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
    
        个人资料
    
        [访问我的空间]
        农村的我
            访问:986265次
            积分:5293
            等级:
            排名:第4091名
            原创:2篇
            转载:264篇
            译文:1篇
            评论:69条
    
        文章搜索
    
        文章分类
    
        Python(16)
        MySQL(14)
        兴趣(4)
        Eclipse(1)
        SqlServer(2)
        VS2010(4)
        JS(67)
        CSS(26)
        阅读(8)
        趣味阅读(5)
        C(1)
        html(5)
        需求 规划 研发(1)
        json(1)
        c++(92)
        svn(1)
        sql(4)
        MongoDB(2)
        qgis(1)
        tuxij(0)
        opengl(5)
        线性代数 坐标转换(0)
        线性代数(1)
        坐标转换(1)
        cmd(1)
        qt(2)
        pcl(2)
    
        文章存档
    
        2017年02月(3)
        2017年01月(2)
        2016年12月(3)
        2016年11月(5)
        2016年09月(5)
        展开
    
        阅读排行 
    
        Python集合(set)类型的操作(233102)
        Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结(151215)
        Html中CSS之去除li前面的小黑点,和ul、LI部分属性方法(86042)
        Python之isinstance(49926)
        查看mysql表结构和表创建语句的方法(43308)
        Js apply()使用详解(41097)
        js实现input:file的click事件(29291)
        网页打开新窗口——Window.open()详解(22258)
        JS windows.open()详解(12549)
        js中条件三目运算符?:(11666)
    
        评论排行
    
        Python集合(set)类型的操作(19)
        Js apply()使用详解(13)
        js实现input:file的click事件(7)
        Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结(6)
        vs2010无可用源 (推荐第二种)(5)
        Python之isinstance(5)
        在MFC中怎么样让控件的大小随着主窗体大小改变而改变(3)
        关于MySQL里的found_row()和row_count()解释及用法(很好很强大!!!)(3)
        jq插件的编写方法(自定义jq插件)(2)
        python之repr()和str()的区别(1)
    
        推荐文章
    
            * 造轮子 | 如何设计一个面向协议的 iOS 网络请求库
            * Android新特性介绍,ConstraintLayout完全解析
            * Android 热修复 Tinker接入及源码浅析
            * 创业公司做数据分析(六)数据仓库的建设
            * 【死磕Java并发】-----深入分析synchronized的实现原理
    
        最新评论
    
        Python之isinstance
    
        农村的我: 程序媛??
        Python集合(set)类型的操作
    
        Mr_Buzz: 第31行>>> c = 可以写成 c = list(b) 直接转成list
        Python之isinstance
    
        葡萄提子: 我也喜欢你的头像啊
        关于MySQL里的found_row()和row_count()解释及用法(很好很强大!!!)
    
        likeflower950: 都经过测试吗?为什么我这边测试一直都是-1
        Python之isinstance
    
        zhouzizan1301: 这头像屌爆了
        Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
    
        csdnwanqian: 好文
        Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
    
        csdnwanqian: int(str,base) #变成base进制整型数,int("11",2) 结果为2 cha...
        Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
    
        csdnwanqian: S.lowercase() str have no this attribute
        jq插件的编写方法(自定义jq插件)
    
        ruchiruzui2012: 任意对象调用方法的插件方式怎么写呢?
        Python集合(set)类型的操作
    
        newpowersky: 真的详细!!!!!
    
    而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:  
      
    1.a = xrange(0,100)   
    2.print type(a)   
    3.print a   
    4.print a[0], a[1]   
      
        输出结果:  
      
    1.<type 'xrange'>  
    2.xrange(100)  
    3.0 1  
      
        所以xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange吧,除非你是要返回一个列表。
    
  • 相关阅读:
    servicestack and redis
    图片服务器
    CRQS介绍
    javascript闭包之购物车加减及提示
    javascript best practices
    EOF
    2012年回顾
    volatile
    通过inode来操作文件
    采样问题
  • 原文地址:https://www.cnblogs.com/zhuzhubaoya/p/6381045.html
Copyright © 2011-2022 走看看