zoukankan      html  css  js  c++  java
  • Python基础教程笔记 第二章

      本章的名字虽然叫列表和元组,但是本章讲的最多的是列表,元祖指讲了很少的一部分。因为元组和列表很多方面都是一样的。

      列表和元组的区别:列表可以被修改,元祖不可以被修改。

      python包含的6种内建序列:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。

      内建函数返回的是元组,因为元组是不可以被修改的。

      列表的形式是[] ,元素之间通过逗号分隔。

      序列(例如列表和元组)和映射(例如字典)是两类主要的容器。序列中的每个元素都有自己编号,而映射中的每个元素则有一个名字(也称为建)。

    集合(set)既不是序列也不是映射类型

    通用的序列操作:索引(indexing)、分片(slicing)、加(adding)、乘(multiply)、迭代(iteration)

      迭代(iteration):依次对序列中的每个元素重复执行某些操作。

          索引(indexing): 序列中所有元素都是有编号的,编号都是从0开始的。使用复数索引时,python会从右边,也就是最后一个元素开始计数,最后一个元素的位置为-1 。

    例:

    >>>'hello'[1]    

    >>> 'e'

    >>> input('year:')[3]

    year:2016

    >>> '6'         

    python3用input代替了python2中的raw_input

      分片(slicing):分片是通过冒号隔开两个索引来实现。第一个索引的元素包含在分片内,第二个不包含。

    num[第一个索引:第二个索引:步长]

    例如:

    >>>num = [1,2,3,4,5,6]

    >>>num[1:4:2]

    [2,4]

    第一个索引、第二个索引和步长都可以为负数。步长不能为0,为0的时候不执行。

    当使用一个负数为步长的时候,必须让开始点(开始索引),大于结束点。

      加(adding):列表和字符串无法连接在一起。只有两种相同类型的序列才能进行连接操作。

    例如:[1,2,3] + [4,5,6]     结果为[1,2,3,4,5,6]

            'hello ' + 'world'      结果为 'hello world'

           [1,2,3] + 'hello'    错误

      乘(multiply):用数字x乘以一个序列会生成新的序列,而新的序列中,原来的序列将会被重复x次

    例如:'he' * 5         'hehehehehe'

             [1] * 5         [1,1,1,1,1] 

    []表示空列表,里面什么东西都没有

    None是一个python内建值,它确切的含义是“这里什么都没有”

    [None] *  5       [None,None,None,None,None]

    python3中的//表示整除,/表示除,无论值是整型还是浮点型。python2中默认的/表示整除。

    成员资格:in

    为了检查一个值是否在序列中,可以使用in运算符。

    例如:>>>st = ['as','df','gh']             (列表成员也可以是列表,这样查看的时候是查看一个列表是否在该列表中)

    >>>'as' in st

    True

    >>>'bb' in st

    False

    >>> 'st' in 'string'

    True

    长度、最小值、最大值:len()、min()、max()

      len()、min()、max()属于内建函数。

      len()返回序列中所包含的元素个数。

      min()和max()返回序列中的最小和最大的元素。

    例如:>>> num = [3,4,2,5,1]

    >>>len(num)

    5

    >>>max(num)

    5

    >>>min(num)

    1

    >>>max(2,3,5,1)

    5

    max()和min()的参数不仅可以是一个序列,还可以以多个数字直接作为参数。

    列表:

    list函数:可以将所有序列转换成列表。

    例如:>>>list('hello')

    ['h','e', 'l', 'l', 'o']

    注意:list使用于所有类型的序列,不只是字符串。

    基本列表操作:

    列表可以使用适用于序列的标准操作,例如索引、分片、链接、乘法。

    元素赋值:可以直接用下标的方法进行赋值,不能对一个不存在的元素进行赋值。 x = [1,2,3]   x[1] = 5    结果x=[1,5,3],赋值索引的下标不能超过2,超过2为不存在的元素。

    删除元素:是用del语句来实现。del x[1]   结果x=[1,3] 。  del可以用于很多变量,不仅是列表,字典也是可以的。

    分片赋值:它可以使程序一次为多个元素赋值。

      使用分片时可以时使用与原序列不等长的序列将分片替换。

      >>> name = list('perl')

      >>> name[2:] = list('python')

      >>> name

      ['p','e','p','y','t','h','o','n']

      分片赋值可以在不需要替换任何元素的情况下插入新的元素

      >>> num = [1,5]

      >>> num[1:1] =  [2,3,4]

      >>> num

      [1,2,3,4,5]

      与之类似,分片也可以删除元素

      >>> num[1:4] = []

      >>> num

      [1,5]

    当然,上述操作也可以加上步长。

    列表方法:append、count、extend、index、insert、pop、remove、reverse、sort、高级排序。

      append:用于在列表末尾追加新的对象。 lst = [1,2,3]   lst.append(4)      结果lst = [1,2,3,4] ,   列表本身被修改。

      count:统计某个元素在列表中出现的次数。[[1,2], [1,1],1,1,[2,3]].count([1,1])   结果为1, [[1,2], [1,1],1,1,[2,3]].count(1) 结果为2

      extend:可以在列表的尾部一次性追加另外一个序列中的多个值。a=[1,2,3] b=[4,5,6] a.extend(b)   结果a = [1,2,3,4,5,6] 。列表本身的值被修改。如果使用+号连接两个列表,也可以得到相同的值,但是列表本身没有被修改,只是返回值是相同的。a + b 返回的结果是[1,2,3,4,5,6], 但是a依旧是[1,2,3]

       index:从列表中找出某个值第一个匹配项的索引位置。当没有这个元素时会发生异常。st = ['qw','er','er','er','sd']   st.index('er')  结果为1

      insert:用于将对象插入到列表中。st.insert(2,'a')  结果st = ['qw','er','a','er','er','sd']   , 列表本身进行的修改。

      pop:会移除列表中的一个元素,默认是最后一个元素,并且返回这个元素的值。x=[1,2,3,4] x.pop() 结果4     x.pop(0) 结果 1 。pop是唯一一个既能修改列表又能返回元素值得列表方法。

      remove:用于移除列表中某个值的第一个匹配项。st.remove('er') 结果st = ['qw','a','er','er','sd'] 。该方法是一个没有返回值的原位置改变方法。

      reverse:将列表中的元素反向存放。a.reverse() a=[3,2,1]。 该方法也改变了列表但是不返回值(就像remove和sort)

      sort:该方法用于在原位置对列表进行排序。原来的列表被改变,不是简单的返回一个已经排序的列表副本。该方法没有返回值。

    >>> x = [3,1,2,4]

    >>> x.sort()  ;  x

    [1,2,3,4]

    >>> y = x.sort()           错误,该方法没有返回值。y的值是None

    如果只是想获得一个已排序的列表副本,原列表仍然保留,可以只用下面的方法:

    >>> y = x[:]           这里不能简单的使用y=x 来赋值,这样是令y也指向x的值,x改变时y也随之改变。x[:]是包含了x所有元素的分片,这是一种很有效率的赋值整个列表的方法

    >>> y.sort()            使用副本来排序,不会修改原始的列表。

    也是使用sorted函数:

    >>> y = sorted(x)

    此时,y的值为[1,2,3,4] ,x的值仍为[3,1,2,4]

    sorted 函数不仅可以用于列表,还可以用于任何序列,总是返回一个列表:

    >>> sorted('python')

    ['h', 'n', 'o', 'p', 't', 'y']

      高级排序:sort方法有两个可选的参数key和reverse.

    如果想使排序结果为逆序,可以调节参数x.sort(reverse = True)即可。

    如想像根据长度来排序,可以使用len 即 x.sort(key = len)

    元组:不可变序列

      如果你使用逗号隔开了一些值,那么你就自动创建了一个元组。

      >>> 1,2,3

      (1,2,3)

      元组大部分是通过圆括号括起来的,空元组可以用没有包含内容的两个括号表示()。

      包含一个值得元组,不是简单的一个值就可以,而是要在这个值后面加上一个逗号。

      >>> 3 * (42)

      126

      >>> 3 * (42,)

      (42, 42, 42)

    tuple函数:可以将一个序列作为参数,转换成元组。如果参数是元组,那么该参数会被原样返回。

      >>> tuple([1,2,3])

      (1,2,3)

      >>> tuple('abc')

      ('a', 'b', 'c')

      >>> tuple((1,2,3))

      (1,2,3)

  • 相关阅读:
    SpringBoot:实现定时任务
    Spring Boot: 配置文件详解
    Git 实用技巧:git stash
    nodejs oj在线笔试应对方案(讲几种输入处理方法)
    scrollWidth,offsetWidth,clientWidth,width;scrollHeight,offsetHeight,clientHeight,height;offsetTop,scrollTop,top;offsetLeft,scrollLeft,left还有谁
    CSS3选择器~一看吓一跳,这么多不会
    CSS3伪类和伪元素的特性和区别
    AngularJS1.X学习笔记6-控制器和作用域
    AngularJS1.X学习笔记5-加强版的表单
    AngularJS1.X学习笔记4-内置事件指令及其他
  • 原文地址:https://www.cnblogs.com/zangyu/p/5664413.html
Copyright © 2011-2022 走看看