zoukankan      html  css  js  c++  java
  • python 内置函数range和xrange

    range

    range 是一种类型(type),它是一个数字的序列,而且是不可变的,通常用在for循环中。

    class range(stop)
    class range(start, stop [, step])
    第一种构造方式,start默认值为0,step默认值为1。

    当step为正时,一个range的元素值为r[i] = start + i * step  且 r[i] < stop; step为负时,r[i] > stop。

    print range(10,20,2)
    print range(-10,0)
    print range(10,20,-2)
    输出:
    [10, 12, 14, 16, 18]
    [-10, -9, -8, -7, -6, -5, -4, -3, -2, -1]
    []

    用 Python 实现冒泡排序

      冒泡排序算法的过程如下:

    1.  比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2.  对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3.  针对所有的元素重复以上的步骤,除了最后一个。
    4.  持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
    array = [1, 2, 5, 3, 6, 8, 4]
    for i in range(len(array) - 1, 0, -1):
        for j in range(0, i):
            if array[j] > array[j + 1]:
                array[j], array[j + 1] = array[j + 1], array[j]
    print array
    View Code

    2.xrange

    xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。

    a = xrange(0,100) 
    print type(a) 
    print a 
    print a[0], a[1] 
    
    输出:
    [1, 2, 3, 4, 5, 6, 8]
    <type 'xrange'>
    xrange(100)
    0 1
    View Code

    xrange 和 range这两个基本上都是在循环的时候用。

    两者的区别:

    生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间

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

  • 相关阅读:
    C#利用反射动态调用类及方法
    系统程序监控软件
    SQL server 2008 安装和远程访问的问题
    sql server 创建临时表
    IIS 时间问题
    windows 2008 安装 sql server 2008
    sql server xml nodes 的使用
    Window 7sp1 安装vs2010 sp1 打开xaml文件崩溃
    CSS资源网址
    Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0
  • 原文地址:https://www.cnblogs.com/y15821933792/p/7566065.html
Copyright © 2011-2022 走看看