python列表的用法


  1.什么是列表
    1.列表是一种容器(用来存储数据对象)
    2.列表能够存储多个数据对象 - 序列
    3.列表是一个可变序列
    4.列表中的数据元素们会有先后顺序
  2.创建列表的方式
    1.使用字面值的方式创建列表
      1.创建空列表
        L = []
      2.创建非空列表

        L = [1,2,3,4]
        L = ["北京","上海","天津","重庆"]
        L = ["One",2,3.14,"4"]
        L = [1,2,[3.1,3.2,3.3],4]
        L = [
          [1,2,3,4],
          [2,3,4,5],
          [3,4,5,6]
          ]
View Code

    2.使用列表的构造函数创建列表
      1.生成空列表
        L = list() # list() 是列表的构造函数,效果等同于 []
      2.使用可迭代对象创建列表
        L = list("hello") #['h','e','l','l','o']
        L = list(range(5,10,2)) #[5,7,9]
    3.列表的运算
      1.算术运算
        +,+=,*,*=
        1. +
          作用:拼接列表

            x = [1,2,3]
           y = [4,5,6]
            z = x + y # [1,2,3,4,5,6]
View Code

        2. +=
          作用:用于将右侧的可迭代对象的数据追加到原列表中

            1.
              x = [1,2,3]
              x += [4,5,6] # x = [1,2,3,4,5,6]
            2.
              x = [1,2]
              x += "AB" # x = [1,2,"A","B"]
            3.
              x = [1,2]
              x += range(3) # x=[1,2,0,1,2]
View Code

        3. *
          作用:生成重复的列表

            1.
              x = [1,2] * 3
              结果 :x=[1,2,1,2,1,2]
            2.
              x = list("AB") # x = ['A','B']
              x *= 2 # x = ['A','B','A','B']
              结果 :x = ['A','B','A','B']
View Code

       2.比较运算
         < <= > >= == !=
         比较规则:与字符串的比较规则完全相同
          1.[1,2,3] < [1,3,2]
            结果:True
          2.[1,2,3] != [1,3,2]
            结果:True
          3.[1,'two'] > ['two',1]
            结果:TypeError

       3.成员运算
          in / not in

          in:判断一个元素是否存在于列表中,存在返回True,否则返回False
          not in : 取值同 in 相反

            x = [1,'two',3,'']

            3 in x : # True
            4 in x : # False
            '' not in x : False
View Code

     4.索引操作
        1.索引
          列表[整数]
          用法:
            等同于字符串的索引操作(正向索引和反向索引,规则与字符串完全相同)

     5.列表的切片 - slice
       1.作用
         等同于字符串的切片
         得到列表中某段连续或符合某特征的子列表
       2.列表的切片取值
         语法:列表[start:stop:step]
       3.列表的切片赋值
         列表[切片] = 可迭代对象
         注意:
           列表切片赋值运算符的右侧必须是可迭代对象
     6.del 语句
       作用:删除列表中的元素
       语法:
         del 列表[索引]
         del 列表[切片]

         L = [0,1,2,3,4,5,6]
         del L[0] #[1,2,3,4,5,6]
         del L[::2] #[2,4,6]
View Code


  1.列表中常用方法 - list api
    >>> help(list)
  2.详解
    1.append()
      作用:
        在列表的末尾添加新元素
      语法:
        L.append(obj)
          参数 obj:
            表示要添加到列表末尾的对象
          返回值:
            无,但是会修改原来的列表中的值

        L = ["漩涡鸣人","宇智波佐助","春野樱"]
        L.append("旗木卡卡西")
        结果:["漩涡鸣人","宇智波佐助","春野樱","旗木卡卡西"]
View Code


    2.count()
      作用:
        统计某个元素再列表中出现的次数
      语法:
        L.count(obj)
          参数 obj:
            要统计的对象
          返回值:
            返回obj在列表中出现的次数

        L = ["漩涡鸣人","宇智波佐助","春野樱","漩涡鸣人"]
        L.count("漩涡鸣人")
        结果:2
View Code

    3.extend()
      作用:
        用于在列表末尾一次性增加另一个序列中的多个值
        (用新列表扩展原列表中的值)
      语法:
        L.extend(seq)
          参数 seq:
            要扩展的元素列表(序列)
          返回值:
            无,但会改变原列表中的值

        L = ["漩涡鸣人","宇智波佐助","春野樱"]
        users = ['大蛇丸',"君麻吕","卡卡西"]
        L.extend(users)
        结果:["漩涡鸣人","宇智波佐助","春野樱",'大蛇丸',"君麻吕","卡卡西"]
View Code

    4.insert()
      作用:
        用于将指定对象插入到列表的指定位置处
      语法:
        L.insert(index,obj)
          参数 index:
            对象obj需要插入的索引位置
          参数 obj:
            需要插入的对象
          返回值:
            无,会改变原列表中的内容

        L = ['大蛇丸',"君麻吕","卡卡西"]
        L.insert(2,'漩涡鸣人')
        结果:'大蛇丸',"君麻吕",'漩涡鸣人',"卡卡西"
View Code

    5.index()
      作用:
        用于从列表中找出某个值第一次匹配的索引位置
      语法:
        L.index(obj)
        参数 obj :
          要查找的对象
        返回值:
          返回该对象对应的索引位置
          注:如果没找到的话则抛出异常

      L = ['大蛇丸',"君麻吕","卡卡西"]
      L.index('君麻吕')
      结果:1

      L = ['大蛇丸',"君麻吕","卡卡西"]
      L.index('佐助')
      会抛出异常
View Code

    6.pop()
      作用:
        用于移除列表中的一个元素(默认是最后一个),并返回该元素的值
      语法:
        L.pop([index=-1])
          参数 [index=-1]:
            可选参数,要移除的列表的元素的索引值,不能超过列表总长度,默认值为-1,表示删除最后一个列表值  
          返回值:
            返回从列表中移除的元素 

        L = ['大蛇丸',"君麻吕","卡卡西"]
        list_pop = L.pop()
        print(list_pop)
        print(L)
        结果:
          "卡卡西"
          ['大蛇丸',"君麻吕"]

        L = ['大蛇丸',"君麻吕","卡卡西"]
        list_pop = L.pop(1)
        print(list_pop)
        print(L)
        结果:
          "君麻吕"
          ["大蛇丸","卡卡西"]
View Code

    7.remove()
      作用:
        移除列表中某个值的第一个匹配项
      语法:
        L.remove(obj)
          参数 obj:
            要移除的内容
          返回值:
            无,但原列表中第一次匹配的内容会被删除

        L = ['大蛇丸',"君麻吕","卡卡西"]
        L.remove('大蛇丸')
        print(L)
        结果:["君麻吕","卡卡西"]
View Code

    8.reverse()
      作用:
        将列表进行翻转
      语法:
        L.reverse()
          参数 :无
          返回值 :无,会改变原有的列表值
    9.sort()
      作用:
        对原列表进行排序
      语法:
        sort(reverse=False)
          参数 reverse :
            排序规则,默认为False表示升序,设置为True则为降序
          返回值:
            无,会改变原列表中的值
  3.字符串的文本解析方法
    1.split()
      语法:
        S.split(sep=None)
      作用:
        将字符串S使用sep作为分隔符进行拆分,返回分隔后的字符串列表,如果不指定sep的话则采用空白字符作为分隔符
    2.join()
      语法:
        S.join(iterable)
      作用:
        用可迭代对象中的字符串,拼接并返回中间使用S进行分割的字符串
  4.浅拷贝 和 深拷贝
    1.浅拷贝 - shallow copy
      1.什么是浅拷贝
        浅拷贝是指在复制过程中,只复制一层变量,不会复制深层变量绑定的对象的复制过程

      2.语法
        L.copy()
    2.深拷贝
      1.语法
        import copy
        L1 = copy.deepcopy(L)
  5.列表推导式 - comprehension
    1.什么是列表推导式
      利用可迭代对象生成列表的表达式
      使用简易的方法生成列表
    2.语法
      [ 表达式 for 变量 in 可迭代对象 if 真值表达式 ]
      注意:
        1.if 真值表达式 是可以省略不写的
        2.表达式 是由 变量配合其他运算组合成的一个表达式值
    3.列表推导式的嵌套
      语法:
        [
          表达式
            for 变量1 in 可迭代对象1 if 真值表达式1
              for 变量2 in 可迭代对象2 if 真值表达式2
        ]

原文地址:https://www.cnblogs.com/zhaoyang1997/p/10325040.html