精华内容
下载资源
问答
  • 心得: 为啥没人看你的博客还要坚持去写呢,告诉自己一个答案,总结以及归纳很重要.或者换句话说,一个人是孤独的,与其说在孤独中灭亡,不如先强大自我. 列表:用[ ]来表示的... list[0] #从零开始,从左边第 'hello...

    心得:
    为啥没人看你的博客还要坚持去写呢,告诉自己一个答案,总结以及归纳很重要.或者换句话说,一个人是孤独的,与其说在孤独中灭亡,不如先强大自我.

    列表:用[ ]来表示的叫做列表,并用逗号分隔其中元素

    >>> list
    ['hello', 'hai', 'nihao']
    

    提取列表元素:

    >>> list[0]       #从零开始,从左边第一位
    'hello'
    >>> list[2]  #第三位
    'nihao'
    >>> list[0:2]    #左闭右开,相当于 list>=0 and list<2 ,所以没办法提取到第三个值
    ['hello', 'hai']
    >>> list[0:3]
    ['hello', 'hai', 'nihao']
    >>>list
    ['orange', 'hello', 'blue', 'apple']
    >>> list[-1] #从右边数起
    'apple'
    

    修改元素

    >>> list
    ['hello', 'hai', 'nihao']
    >>> list[0]="HELLO"   #直接使用索引值修改
    >>> list
    ['HELLO', 'hai', 'nihao']
    

    添加元素

    在列表末尾添加元素

    >>> list
    ['HELLO', 'hai', 'nihao']
    >>> list.append("wei")
    >>> list
    ['HELLO', 'hai', 'nihao', 'wei']
    

    在列表内添加元素

    >>> list
    ['HELLO', 'hai', 'nihao', 'wei']
    >>> list.insert(1,"hei")     #添加到第二位,其他元素往后移
    >>> list
    ['HELLO', 'hei', 'hai', 'nihao', 'wei']
    

    删除元素

    del

    >>> list
    ['HELLO', 'hei', 'hai', 'nihao', 'wei']
    >>> del list[2]   #通过索引去删除对应位置
    >>> list
    ['HELLO', 'hei', 'nihao', 'wei']
    

    pop()

    ['HELLO', 'hei', 'nihao', 'wei']
    >>> list.pop()   #删除末尾元素
    'wei'
    >>> list
    ['HELLO', 'hei', 'nihao']
    

    remove

    >>> list
    ['HELLO', 'hei', 'nihao']
    >>> list.remove("hei")       #根据列表内的值取决定删除
    >>> list
    ['HELLO', 'nihao']
    

    区别在于,pop()可以在删除某元素之后,还可以继续使用它,当然也可以在括号中加索引,当你不需要删除值时,就使用del

    排序
    sort
    会改变原列表的顺序

    >>> list
    ['hello', 'apple', 'blue', 'orange']
    >>> list.sort()      #直接安照字母顺序排序
    >>> list
    ['apple', 'blue', 'hello', 'orange']
    

    sorted
    不会改变原列表的顺序,但会生成新列表

    >>> sorted(b)
    [1, 2, 3]
    >>> sorted(b,reverse=True)
    [3, 2, 1]
    

    reverse
    会改变原列表的值

    >>> list
    ['apple', 'blue', 'hello', 'orange']
    >>> list.reverse()  #反转元素
    >>> list
    ['orange', 'hello', 'blue', 'apple']
    

    reversed
    不会改变原列表的顺序,会生成新列表的reversed对象

    >>> b
    [1, 2, 3]
    >>>
    >>> reversed(b)
    <list_reverseiterator object at 0x000001C23EF16850>
    >>> list(reversed(b))
    [3, 2, 1]
    

    长度:

    >>> list
    ['orange', 'hello', 'blue', 'apple']
    >>> len(list)
    4
    

    遍历列表:

    使用for循环是经常用到的操作

    >>> list
    ['orange', 'hello', 'blue', 'apple']
    >>> for i in list:
    ... 	print(i)
    ... 
    orange
    hello
    blue
    apple
    

    range()

    1到5,实际值是1,2,3,4 左闭右开, list>=左 and list<右

    >>> for i in range(1,5):
    ... 	print(i)
    ... 
    1
    2
    3
    4
    

    简单的统计:

    >>> a=[2,3,5,7,11,42]
    >>> min(a)
    2
    >>> max(a)
    42
    >>> sum(a)
    70
    

    切片

    >>> list
    ['orange', 'hello', 'blue', 'apple']
    >>> list[0:3]       #0到3
    ['orange', 'hello', 'blue']
    >>> list[1:3]  #1到3,不包含3
    ['hello', 'blue']
    >>> list[:4]  #从0到4
    ['orange', 'hello', 'blue', 'apple']
    >>> list[2:]  #从2到尾
    ['blue', 'apple']
    >>> list[-3:] #从倒数第三到倒数最后一位
    ['hello', 'blue', 'apple']
    

    元祖:

    >>> tuple=("a","blue","cool")
    >>> tuple[0]
    'a'
    >>> tuple[0]="apple"
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment
    

    元祖和列表唯一的区别就是不能被修改,如果修改会报错误,如上,遍历方法一致.

    同时遍历多个列表zip用法

    
    >>> a
    ['a', 'b', 'c']
    >>> b
    [1, 2, 3]
    
    >>> for i,j in zip(a,b):
    ...     print(i+":"+str(j))
    ...
    a:1
    b:2
    c:3
    

    列表生成式

    >>> [x * x for x in range(1, 11)]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    

    加入if

    >>> [x * x for x in range(1, 11) if x % 2 == 0]
    [4, 16, 36, 64, 100]
    

    也可以用来循环字典,生成列表

    >>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
    >>> [k + '=' + v for k, v in d.items()]
    ['y=B', 'x=A', 'z=C']
    
    展开全文
  • 浅谈快速排序

    2018-08-26 19:03:53
    因为第一步处理了左边第二步就应该处理右边。 右边扫描,大的不管,将比x小的数扔到数组左端,左端前进一;再开始扫描,将比x大的扔到数组右端,右端后退一。如此反复,当i = = j时,说明数组...
       它的基本框架就是:定左端一个数为基数x,提取出来(相当于空出一个位置放置右端比x大的数)。然后把小于x的数扔左边,大于x的数扔右边。
       两个数i , j代表数组两端始末位置,开始扫描。因为第一步处理了左边,第二步就应该处理右边。
       从右边扫描,大的不管,将比x小的数扔到数组左端,左端前进一位;再从左开始扫描,将比x大的扔到数组右端,右端后退一位。如此反复,当i = = j时,说明数组只剩下一个位置,这个位置上原本的数要么大于x要么等于要么小于。大于或小于的值会在i = = j之前被扔到右端或左端,等于的情况赋值也没影响。所以将x赋给这个位置。这样之后,数组[0( l ) ~i - 1] 全部小于x, [ i + 1~ r ] 全部大于x,完成一轮排序,分成两端再进行排序。
       以此类推,最终当l = = r无法再进入下一层递归时,该区间必然有序(只有一个元素)。递减排序左右相反即可。
    

    代码实现:(我这种以第一个为基准的代码会有一个弊端,如果一个序列本身有序,那么时间复杂度就会退化到O(n^2),推荐随机选取基准数或者选取中间的数)

    #include <iostream>
    #include <cmath>
    using namespace std;
    int a[100010];
    void quicksort(int l,int r){
        int i=l,j=r,x=a[l];
        if (l<r){
        while (i<j){
            while (i<j&&a[j]>x)j--;
            if (i<j)a[i++]=a[j];
            while (i<j&&a[i]<x)i++;
            if (i<j)a[j--]=a[i];
        }
        a[i]=x;
        quicksort(l, i-1);
        quicksort(i+1, r);
        }
    }
    int main(){
        int n;
        cin>>n;
        for (int i=1;i<=n;i++)cin>>a[i];
        quicksort(1, n);
        cout<<a[1];
        for (int i=2;i<=n;i++)cout<<' '<<a[i];
        cout<<endl;
        return 0;
    }
    展开全文
  • 第一参数为参照区域,第二参数为颜色条件,第三参数为求和区域,即第一参数中颜色与第二参数相同,则将对应的第三参数的单元格进行求和。如果省略第三参数则对第一参数求和 AVER评分函数。计算参数区域中去除最大值与...
  • 第一参数为参照区域,第二参数为颜色条件,第三参数为求和区域,即第一参数中颜色与第二参数相同,则将对应的第三参数的单元格进行求和。如果省略第三参数则对第一参数求和。 函数名称:AVER 函数功能与参数:评分...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    第一参数为参照区域,第二参数为颜色条件,第三参数为求和区域,即第一参数中颜色与第二参数相同,则将对应的第三参数的单元格进行求和。如果省略第三参数则对第一参数求和。 函数名称:AVER 函数功能与参数:评分...
  • 【隐藏选项卡】 可以隐藏Excel2007及2010功能区的各选项卡(如:开始、插入、开发工具等)。 图 片 工 具 【选择本表图片】 将工作表中的图表导出为图片保存起来。 【批量导入图片到右列】 批量将图片导入到工作表...
  • 【隐藏选项卡】 可以隐藏Excel2007及2010功能区的各选项卡(如:开始、插入、开发工具等)。 图 片 工 具 【选择本表图片】 将工作表中的图表导出为图片保存起来。 【批量导入图片到右列】 批量将图片导入到工作表...
  • // 如1页是从第1行(offset=(21-1)*5=0,offset+1=0+1=1)开始查询; // 2页从第6行(offset=(2-1)*5=5,offset+1=5+1=6)记录开始查询 int offset = (pageNo-1)*limit; //获取指定页数包含的员工信息 List<...
  • // 如1页是从第1行(offset=(21-1)*5=0,offset+1=0+1=1)开始查询; // 2页从第6行(offset=(2-1)*5=5,offset+1=5+1=6)记录开始查询 int offset = (pageNo-1)*limit; //获取指定页数包含的员工信息 List<...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0093 使用LeftStr函数从左边取得指定个数的字符串 65 0094 使用RightStr函数从右边取得指定个数的字符串 65 0095 使用Length函数取得一段字符串的长度 65 0096 使用Pos函数返回子字符串一次出现的索引值 ...
  • 正则表达式

    2014-12-03 14:51:39
    在正则表达式中,括号的第二个用途是在完整的模式中定义子模式。当一个正则表达式成功地和目标字符串相匹配时,可以目标串中抽出和括号中的子模式相匹配 的部分.例如,假定我们正在检索的模式是一个或多个字母后面...
  • 这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接...
  •  这里的一个表显示第二个参数是如何工作的: 值 含义 0 一周以星期日开始,返回值范围为 0-53 1 一周以星期一开始,返回值范围为 0-53 2 一周以星期日开始,返回值范围为 1-53 3 一周以星期一开始,...
  • 我就可以把“array”当作下标1 开始的数组。 函数和多维数组 6.18 当我向一个接受指针的指针的函数传入维数组的时候,编译器报错了。 6.19 我怎样编写接受编译时宽度未知的维数组的函数? 6.20 我怎样在...
  • ~1章 声明和初始化 1 基本类型 1 1.1 我该如何决定使用哪种整数类型? 1  1.2 为什么不精确定义标准类型的大小? 2 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.7 是否可以安全地认为,一旦&&和||左边的表达式已经决定了整个表达式的结果,则右边的表达式不会被求值? 36  3.8 为什么表达式printf("%d %d", f1(), f2()); 先调用了f2?我觉得逗号表达式应该确保左到右的...
  • 3.7 是否可以安全地认为,一旦&&和||左边的表达式已经决定了整个表达式的结果,则右边的表达式不会被求值? 65 3.8 为什么表达式printf("%d %d", f1(), f2()); 先调用了f2?我觉得逗号表达式应该确保左到右的求...
  • 我就可以把“array”当作下标1 开始的数组。  函数和多维数组  6.18 当我向一个接受指针的指针的函数传入维数组的时候,编译器报错了。  6.19 我怎样编写接受编译时宽度未知的维数组的函数?  6.20 我...
  • ='\n')的代码…… 3.7 是否可以安全地认为,一旦&&和||左边的表达式已经决定了整个表达式的结果,则右边的表达式不会被求值? 3.8 为什么表达式printf("%d%d",f1(),f2());先调用了f2?我觉得逗号表达式应该确保...
  • 级窗体,双击主窗体分离出来浮动,可以自由调整大小。再次双击标题栏最大化,再次双击还原。 每个模块都可以自定义采集速度,如果是数据库采集会自动排队处理。 提供系统设置窗口进行整体的配置参数设置。 ...
  • powerbuilder

    2013-11-21 17:11:48
    参数printjobnumber:用PrintOpen()函数打开的打印作业号string:string类型,指定要打印的文本x:integer类型,指定文本开始打印位置的x坐标,以千分之一英寸为单位y:integer类型,指定文本开始打印位置的y坐标,...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    58 <br>0081 文本中首字母改为大写 59 <br>0082 C#随机数的产生 59 <br>0083 身份证15升至18算法 60 <br>0084 十进制数转进制数的算法 60 <br>0085 十进制数转八进制数的算法 61...
  • * [a-z&&[^m-p]] a through z, and not m through p: [a-lq-z](subtraction) [a-z&&[^m-p]] a 到 z, 不包括 m 到 p: [a-lq-z](子集) * * Predefined character classes 预定义字符序列 * ...
  • 修改BUG:超级列表框在属性“整行选择”为真时,鼠标单击一列右面也会导致一列中的选择框被选中或取消选中。 21. 修改BUG:Sqlite3数据库支持库中“Sqlite数据库.取错误文本()”返回的文本是UTF-8编码(应是GB...
  • 超旺软件最新单机版

    2019-04-13 01:06:33
    商品编码:为了录入快捷和便于查询,您可为商品定义编码,使用数字作为商品编码,系统会提示您编码必须以“2”字开头,并且编码需是7数。若是生鲜产品,则提示您必须以“99”开头; 商品分类:如果您在选择了商品...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

从左边第二位开始提取