zoukankan      html  css  js  c++  java
  • range和xrange梳理

    一、python2.7

    range

    用户获取指定范围内的数,range([start,] stop[, step])

    >>> range(1,5)    #代表从1到5(不包含5)
    [1, 2, 3, 4]
    >>> range(1,5,2)    #代表从1到5,间隔2(不包含5)
    [1, 3]
    >>> range(5)    #代表从0到5(不包含5)
    [0, 1, 2, 3, 4]
    
    a = range (0,5)
    print(type(a))
    
    OUTPUT:
    <type 'list'>
    

    xrange:

    用法和range只有在使用for的时候才会逐个创建元素,提高了性能,建议使用xrange。

    a = xrange (0,5)
    print(type(a))
    
    OUTPUT:
    <type 'xrange'>
    

    对比

    a = range(0,5)
    b = xrange(0,5)
    
    print a        
    print b        
    
    for ai in a:
        print ai
    
    for bi in b:
        print bi
    
    OUTPUT:
    [0, 1, 2, 3, 4]
    xrange(5)
    0
    1
    2
    3
    4
    0
    1
    2
    3
    4
    

    从上面的运行结果可以看到,range会直接生成整个列表。而xrange返回的是一个生成器,生成器是一个可迭代对象,只有在对生成器进行迭代时(for循环),元素才逐个被创建。xrange大大提升了代码的执行效率,因此在python2.7中xrange的使用非常广泛。

    二、python3.5

    在py3.5中,删去了原来的range,把原来的xrange改成了range。

    a = range (0,5)
    print(type(a))
    
    OUTPUT:
    <class 'range'>
    
  • 相关阅读:
    p67 把特定位置的位变成0,进行与运算
    p65 逻辑与运算
    JavaScript对象和初始面向对象
    JavaScript操作DOM对象
    JavaScript操作BOM对象
    JavaScript基础
    DAO模式
    使用ADO.NET访问数据库
    连接查询和分组查询
    模糊查询和聚合函数
  • 原文地址:https://www.cnblogs.com/whatisfantasy/p/5954123.html
Copyright © 2011-2022 走看看