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. = 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, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
    3. 0 1

        而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:
    1. = 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吧,除非你是要返回一个列表。 
  • 相关阅读:
    oracle中Blob和Clob类型的区别
    为什么要分库分表
    Enable file editing in Visual Studio's debug mode
    SQL Server Dead Lock Log
    Debug .NET Framework Source
    SQL Server text field里面有换行符的时候copy到excel数据会散乱
    诊断和修复Web测试记录器(Web Test Recorder)问题
    Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
    'telnet' is not recognized as an internal or external command
    Linq to XML
  • 原文地址:https://www.cnblogs.com/cnwebdeveloper/p/2592033.html
Copyright © 2011-2022 走看看