• 列表的基础使用


    列表——list

    1. 列表是什么

    • 定义:列表是由一系列按特定顺序排列的元素组成,用 [ ] 来标识

    • 语法格式:listname = [ele1, ele2, ele3, .....]

      e.g
      # 创建一个字母列表
      letters = ['a', 'b', 'c', 'd']
      # 也可以创建一个空的列表
      letter = []
      
    • 列表是有序的集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可

    • 索引是从0开始,最后一个列表元素索引为-1,因此可以在不知道列表长度时,访问最后的元素

      # 打印字母列表中的第一个元素
      print(letters[0])
      #对列表中字符串类型
      #首字母大写
      letters[0].title()
      #全部大写
      letters[0].upper()
      #全部小写
      letters[0].lower()
      # 打印整个列表
      print(letters)
      
    • 使用+可以将的字符串类型进行拼接

    2. 修改、添加、删除元素

    • 追加:listname.append(data)

      ​ listname += [.....]

    • 插入:listname.insert(index, data)

      注意:insert()方法需要两个参数(take exactly 2 arguments)

    • 替换 :listname[index] = data

    • 删除

      • del(永久删除)

      del listname[index]

      • pop()(按照索引删除)

      listname.pop(index)

      注意:

      如果不指定索引,则默认删除最后一个元素

      • remove()按照值删除

      listname.remove(data)

      注意:

      方法remove()只删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值

      注意:

      后两种方法可以将删除的某个元素保存到某个变量,继续使用

      3. 对列表进行排序

    • sort()(永久排序)

      • (降序)正向排序

      listname().sort()

      • 反向排序

      加入参数 reverse = True

      listname.sort(reverse = True)

    • sorted(临时排序)

      sorted(listname)

      注意:

      临时排序相当于拷贝一份,显示一次排序结果,但原来列表中的排列顺序并未发生改变

      4. 倒着打印列表

      listname.reverse()

      注意:

      reverse()不是指按与字母顺序相反的顺序排列列表元素,只是反转列表元素

      reverse()永久的修改列表,但再次使用reverse()即可将列表还原

      5. 确定列表的长度

      使用函数 len(listname) 确定列表的长度

      对列表的操作

      • 在游戏中,可能需要将每个界面元素平移相同的距离;
    • 对于包含数字的列表,可能需要对每个元素执行相同的统计运算;

      • 在网站中,可能需要显示文章列表中的每个标题
      • 需要对列表中的每个元素都执行相同的操作时,可使用Python中的for循环

      1. 遍历整个列表

      假设有一个魔术师列表:

      magicians = ['alice', 'david', 'carolina']

      使用for循环来打印魔术师名单中的名字:

      for magician in magicians:

      print(magician)

      解释

      第一行代码让Python从列表magicians中取出一个名字,并将其存储在变量magician中。最后,我们让Python打印前面存储在变量magician中的名字。继续循环,直到列表中没有其他的值了。

      2. 在循环中执行更多的操作

      for magician in magicians:
          print(magician.title() + ', that was a great trick!')
      print('Thank you, everone. That was a great magic show!')
      

      3. 创建数值列表

      在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分。

      在数据可视化中,处理几乎都是由数字(如温度,距离,人口数量,经度和纬度等)组成的集合。

      列表非常适合用于存储数字集合,而python提供了很多工具,可帮助你高效地处理数字列表

      • range()函数(生成一系列数字)

        for value in range(1, 5):
            print(value)
        '''
        打印结果:
        1
        2
        3
        4
        '''
        

        上述代码好像应该打印数字1~5,但实际上它不会打印数字5,函数range()让python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值(这里为5)

        *要打印数字1~5,需要使用range(1, 6):

        for value in range(1, 6):
            print(value)
        """
        运行结果:
        1
        2
        3
        4
        5
        """
        
      • 使用range()创建数字列表

        要创建数字列表,可使用函数list()将range()的结果直接转换为列表,如果range()作为list()的参数,输出将为一个数字列表。

        numbers = list(range(1, 6))
        print(numbers)
        """
        运行结果:
        [1, 2, 3, 4, 5]
        """
        

        使用range()时,还可以指定步长

        even_numbers = list(range(2, 11, 2))
        print(even_numbers)
        """
        运行结果:
        [2, 4, 6, 8, 10]
        """
        

        例如,创建一个空列表,其中包含1~10的平方,在python中两个星号(**)代表乘方运算

        squares = []
        for value in range(1, 11):
            square = value**2
            squares.append(square)
        print(squares)
        """
        运行结果:
        [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
        """
        

        4.max(),min(),sum()

        digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
      # 求digits的最大值
        max(digits)
      # 求digits的最小值
        min(digits)
      # 求和
        sum(digits)
      

      5. 列表推导式

      前面介绍的生成列表squares的方式包含三四行代码,而列表推导式让你只需写一行代码就能生成这样的列表。

      列表推导式将for循环和创建新元素的代码合并成一行,并自动附加新元素

        # 注意:for循环后面没有冒号
        squares = [value**2 for value in range(1, 11)]
        print(squares)
      

      注意:

      要使用这种语法,首先指定一个描述性的列表名,如squares;

      然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式value**2,它计算平方值。

      接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。

      1. 例如:使用列表推导式通过函数range()指定第三个参数创建一个列表,其中包含1~20的奇数;在使用for循环将这个列表中的数字打印出来
        odd_numbers = [value for value in range(1, 21, 2)]
        print(odd_numbers)
        '''
        运行结果:
        [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
        '''
      

      6. 使用列表的一部分(切片)

      要使用切片,可指定要使用的第一个元素和最后一个元素的索引

      与函数range()一样,Python在到达你指定的第二个索引出停止,不会打印最后一个元素的索引

      • 切片

        有一个运动员列表:

        players = ['a', 'b', 'c', 'd','e', 'f']
        # 打印第1~第2个元素
        print(players[0:2])
        # 打印第2~第4个元素
        print(players[1:4])
        # 没有指定起始索引,默认从头开始
        print(players[:4])
        # 没有指定末尾索引,默认到结束
        print(players[3:])
        # 打印最后3个元素
        print(players[-3:])
        
        
      • 遍历切片

        如果要遍历列表的部分元素,可在for循环中使用切片

        下面代码没有遍历整个列表,只遍历前三个元素

          players = ['a', 'b', 'c', 'd','e', 'f']
        for player in players[:3]:
              print(player)
        '''
          运行结果:
          a
          b
          c
          '''
        

      在很多情况下,切片都很有用。

      编写游戏时,你可以在玩家退出游戏时将其最终得分加入到一个列表中。然后,为获取该玩家的三个最高分,你可以将列表按降序排列,再创建一个只包含前三个得分的切片。

      处理数据时,可使用切片来进行批量处理

      编写web应用程序时,可使用切片来分页显示信息,并在每页显示数量合适的信息

      • 复制列表

        你经常需要根据既有列表创建全新的列表

        要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引( [:] )

        my_foods = ['a', 'b', 'c']
        friend_foods = my_foods[:]
        '''
        在不使用切片的情况下,这行不通
        这里将my_foods赋给friend_foods,而不是将my_foods的副本存储到friend_foods
        这里my_foods和friend_foods指向同一个列表
        '''
        friend_foods = my_foods
      
  • 相关阅读:
    setuptools使用
    YOLO解读
    Linux下配置Python的独立虚拟环境
    交叉熵(Cross Entropy)
    OpenCV-C++ Canny算法介绍
    OpenCV-C++ Laplance算子
    【模型部署】TF Serving 的使用
    OpenCV-C++ Sobel算子使用
    OpenCV-C++ 图像卷积计算的边缘问题
    OpenCV-C++ 自定义线性滤波
  • 原文地址:https://www.cnblogs.com/rainszj/p/11252664.html
Copyright © 2020-2023  润新知