加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

列表的基础使用

发布时间:2020-12-20 12:56:09 所属栏目:Python 来源:网络整理
导读:列表——list 1. 列表是什么 定义:列表是由一系列按特定顺序排列的元素组成,用 [ ] 来标识 语法格式:listname = [ele1,ele2,ele3,.....] e.g# 创建一个字母列表letters = ['a','b','c','d']# 也可以创建一个空的列表letter = [] 列表是有序的集合,因此要

列表——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,6,8,10]
      """

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

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

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

    digits = [1,5,7,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,13,15,17,19]
      '''

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

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

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

    • 切片

      有一个运动员列表:

      players = ['a','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','f']
      for player in players[:3]:
            print(player)
      '''
        运行结果:
        a
        b
        c
        '''

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

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

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

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

    • 复制列表

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

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

    my_foods = ['a','c']
      friend_foods = my_foods[:]
      '''
      在不使用切片的情况下,这行不通
      这里将my_foods赋给friend_foods,而不是将my_foods的副本存储到friend_foods
      这里my_foods和friend_foods指向同一个列表
      '''
      friend_foods = my_foods

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读