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

    来自:https://www.cnblogs.com/xiezhiyang/p/6613094.html

    range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。
    range示例:

    1
    2
    3
    4
    5
    6
    >>> range(5)
    [01234]
    >>> range(1,5)
    [1234]
    >>> range(0,6,2)
    [024]

      

         xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。
    xrange示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> xrange(5)
    xrange(5)
    >>> list(xrange(5))
    [01234]
    >>> xrange(1,5)  
    xrange(15)
    >>> list(xrange(1,5))
    [1234]
    >>> xrange(0,6,2)
    xrange(062)
    >>> list(xrange(0,6,2))
    [024]

      

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

    1
    2
    3
    4
    5
    for in range(0100):
     print i
     
    for in xrange(0100):
     print i

      这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:

    1
    2
    3
    4
    = range(0,100)
    print type(a)
    print a
    print a[0], a[1]

      输出结果:

    1
    2
    3
    <type 'list'>
    [0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
    0 1

      

          而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:

    1
    2
    3
    4
    = xrange(0,100)
    print type(a)
    print a
    print a[0], a[1]

      结果如下:

    1
    2
    3
    <type 'xrange'>
    xrange(100)
    0 1
  • 相关阅读:
    CentOS7安装(三)- 配置阿里云yum源
    OSQA的配置
    MySQL学习 (三) Limit-Distinct-Union
    MySQL学习(二)-字段类型及约束
    MySQL学习(一)-基本知识
    Python闭包
    软件测试面试常考点
    人生感悟
    常用的Linux命令
    细说php一些常见的知识点
  • 原文地址:https://www.cnblogs.com/sweeeper/p/12053170.html
Copyright © 2011-2022 走看看