zoukankan      html  css  js  c++  java
  • 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
            ]

  • 相关阅读:
    MySql存储过程学习总结
    JAVA设计模式之策略模式
    JAVA设计模式之装饰模式
    JAVA设计模式之代理模式
    动手学servlet(四) cookie和session
    动手学servlet(三) 请求头和响应头信息
    动手学servlet(二) servlet基础
    动手学servlet(一) 第一个servlet程序
    HTTP与HttpServlet
    HttpServlet详解
  • 原文地址:https://www.cnblogs.com/zhaoyang1997/p/10325040.html
Copyright © 2011-2022 走看看