• 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
  • 相关阅读:
    用php做了下冒泡排序
    安装xampp无法设置默认时间的坑
    PHP的静态变量和引用函数
    jquery.cookie.js 用法
    PhpStorm的open in browser怎么修改端口和相对路径
    springmvc上传图片并显示图片--支持多图片上传
    Spring MVC中处理静态资源的多种方法
    超强、超详细Redis数据库入门教程(转载)
    推荐60个jQuery插件(转)
    [Spring MVC]
  • 原文地址:https://www.cnblogs.com/sweeeper/p/12053170.html
Copyright © 2020-2023  润新知