列表

列表是什么

列表是由一系列按特定顺序排列的元素组成,其中可以包含数字,字符串,元组,字典等多种类型的数据。
在python中,由[]表示列表,并用逗号分隔其中的元素。
示例如下:
```python
bicycles = ['trek','cannondale','redline']
print(bicycles) #-->['trek','cannondale','redline']
```
  • 访问列表元素
    我们直接以代码的方式来看会比较直接:

    bicycles = ['trek','cannondale','redline']
    print(bicycles[0])#-->trek    打印出第一个元素
    print(bicycles[2])#-->redline    打印出第三个元素
    #提取出值后我们可以用一个变量保存值
    #然后我们就可以使用这个变量做字符串的任何操作了,因为以上存入的都是字符串--
    item=bicycles[0]
    print(item.title())#-->Trek    首字母大写

    列表的第一项都是由0开始的,0为万物之始

  • 列表操作--增删改
    1.增

       增加我们让列表调用末尾添加用append函数插入的话用insert函数,代码示例如下:
       ```python
       bicycles = ['trek','cannondale','redline']
       bicycles.append('QQ')
       print(bicycles) #-->['trek','cannondale','redline','QQ']    可以看见多了一个QQ了吧
       #不过append是在列表的末尾添加元素,但是我们向插入怎么办呢
       bicycles = ['trek','cannondale','redline']
       bicycles.insert(0,'QQ')
       print(bicycles)#-->['QQ','trek','cannondale','redline']    可以看见在列表的0号位置插入了一个QQ
       ```

    2.改

       有时候,列表的元素需要更新,那么我们可以这么做,直接给那个位置的元素赋值:
       ```python
       bicycles = ['trek','cannondale','redline']
       bicycles[0]='QQ'
       print(bicycles)#-->['QQ','cannondale','redline']
       ```

    3.删

       元素又会有过期的时候,当它过期的时候我们要做什么,就是扔了它,我们有两种方式删除元素,1.del 元素 2.列表.pop(可空形参) 3.根据值删除:
       ```python
       bicycles = ['trek','cannondale','redline']
       del bicycles[0]#-->['cannondale','redline']    这种方式直接删除了第一个元素
       #以上代码的缺陷就是你只能删除,但是删除的元素你却不能转存
       
       bicycles = ['trek','cannondale','redline']
       bike = bicycles.pop()
       print(bike)#-->redline    这种方式默认弹出最后的末尾元素
       #同时我们可以传入参数指定弹出某个位置的值
       bicycles = ['trek','cannondale','redline']
       bike = bicycles.pop(0)
       print(bike)#-->trek    这种方式默认弹出指定的0号位置的元素
       
       bicycles = ['trek','cannondale','redline']
       bicycles.remove('trek')
       print(bicycles)#-->['cannondale','redline']    已删除了指定元素trek
       #remove()只会删除第一个指定的值,当要完全删除列表中的指定值是请是使用遍历,示例:
       while bicycles['trek']:#当数组中包含了'trek'元素时继续循环
           bicycles.remove('trek')
       #以上的代码原数组都会相应的删除你删除了的元素
       ```

    4.组织列表
    (1)排序

        有时候,杂乱的元素无法让我们正确的提取出相应的元素,我们需要对列表进行排序,此时也分为两种,1.不改变自身顺序,产生一个排好序的副本 2.将原数组排序
        1.永久排序
        python列表内置了一个sort()方法用来排序,感兴趣的可以测测它排序的效率与速度
        ```python
        cars=['bmw','audi','toyota','subaru']
        cars.sort()
        print(cars)#-->['audi','bmw','subaru','toyota']    可以发现输出的字符串以字母顺序排列
        #以上为正序排序,当我们需要逆序排列时
        cars=['bmw','audi','toyota','subaru']
        cars.sort(reverse=True)#我们指定形参reverse的值为true,就可以时列表逆序
        print(cars)#-->['toyota','subaru','bmw','audi']    字符串逆序排列
        ```
        2.临时排序
        sorted()函数,其作用是保留原来的排列顺序,同时返回给我们特定的书顺序
        ```python
        #正序
        cars=['bmw','audi','toyota','subaru']
        print(sorted(cars))#-->['audi','bmw','subaru','toyota']
        print(cars)#-->['bmw','audi','toyota','subaru']    原数组不变
        
        #逆序
        cars=['bmw','audi','toyota','subaru']
        print(sorted(cars,reverse=True))#-->['toyota','subaru','bmw','audi']
        print(cars)#-->['bmw','audi','toyota','subaru']    原数组不变
        ```

    (2)倒序

       列表存在正序和反序,让我们看看怎么让原有数组倒序吧:
       ```python
       cars=['bmw','audi','toyota','subaru']
       cars.reverse()
       print(cars)#-->['subaru','toyota','audi','bmw']    原数组会发生变化
       #这种方法会改变原数组,但是我们在执行一遍就可以得到之前的数组啦
       ```

    (3)确定列表的长度

    cars=['bmw','audi','toyota','subaru']
    print(str(len(cars)))#-->4    长度为4

    (4)列表的特殊之处

       当我们要从后访问时,我们也许会想到读取列表的长度然后根据长度获取列表的最后一个值,但是这里提供了一种新思路:
       ```python
       cars=['bmw','audi','toyota','subaru']
       print(cars[len(cars)-1]))#-->subaru    最后一个元素
       print(cars[-1]))#-->subaru    最后一个元素
       print(cars[-2]))#-->toyota    倒数第2个元素
       #由此可见我们要访问后面的元素时可以提供一个负数的索引值,倒一即-1
       #只有当cars数组为空时cars[-1]才会报错
       ```
       
  • 操作列表

    1. 遍历列表

      这是操作列表的基本操作,每个人都有不同的习惯
      ```python
      cars=['bmw','audi','toyota','subaru']
      for car in cars:
          print(car)#-->依次换行输出列表元素,注意缩进
      #-->bmw
      #-->audi
      #-->toyota
      #-->subaru
      ```
      for car in cars这是一个循环,car会一次取出cars存入,第一次car取出bmw并赋值自生,此时会执行print(car),输出bmw,第二次代码会回到for car in cars取出第二个元素audi,并赋值自身,然后print(car),输出audi,依次类推
      
      ***Warning:*** for car in cars:后的代码有一段缩进,那表示这是循环的子代码,如果子代码有多行必须在每一行前加一个缩进,每一次循环都会把子代码执行一遍才会进入下一个循环
      示例代码:
      ```python
      cars=['bmw','audi','toyota','subaru']
      for car in cars:#如果下一行没有缩进的话会报错,同时之一最后的一个:冒号是必须的
          content = "I want to buy a " + car
          print(content)
      print('But I have only $10')#没有缩进,处于循环之外,等循环结束后才会执行
      #-->I want to buy a bmw
      #-->I want to buy a audi
      #-->I want to buy a toyota
      #-->I want to buy a subaru
      #-->But I have only $10'
      ```
    2. 创建数值列表

      (1)range()使用这个函数,我们可以十分方便的创建一个任意长度的数字
      ```python
      for value in range(3)
          print(value)
      #-->0
      #-->1
      #-->2
      #只提供一个数子的话默认从0开始计算,到传入的实参的值结束
      for value in range(1,3)
          print(value)
      #-->1
      #-->2
      #则会表示从1开始,到3结束,注意输出结果,只输出到2
      ```
      (2)使用range()常见数值列表
      ```python
      nums=list(range(1,6))
      print(nums)
      #-->[1,2,3,4,5]
      ```
      指定步长(每个数相差的值)
      ```python
      nums=list(range(2,11,2))
      print(nums)
      #-->[2,4,6,8,10]
      #该列表从2开始,不断加2,直到值超过11结束
      ```
    3. 对数字列表进行简单的统计计算

      digits=[1,2,3,4,5,6,7,8,9,0]
      print(str(min(digits)))#-->0    最小值
      print(str(max(digits)))#-->9    最小值
      print(str(sum(digits)))#-->45    最小值
    4. 列表解析

      *本节只为简短的介绍一下,因为很多地方都用到,之后会新开一章以便理解*
      先看示例代码:
      ```python
      item=[value **2 for value in  range(1,11)]
      print(item)#-->[1,4,9,16,25,36,49,64,81,100]
      #结构:[表达式 for循环]
      #for循环会循环表达式,然后存入数组中
      ```
    5. 使用列表的一部分

      (1)切片
      使用该方法时,你必须知道列表的第一个元素和最后一个元素,在其范围内切出一个新的列表
      示例:
      ```python
      players = ['a','b','c','d','e']
      print(players[0:3])#-->['a','b','c']    起始索引为0,终止索引为3
      #以上可以简写
      print(players[:3])#-->['a','b','c']    前一个不写默认起始索引为0
      print(players[2:])#-->['c','d','r']    后一个不写默认终止索引为最后的一个元素索引
      print(players[-3:])#-->['c','d','r']    -3表示倒数第三个元素
      ```
      (切片用法1.遍历)
      示例:
      ```python
      players = ['a','b','c','d','e']
      for i in players[:3]:
          print(i)
      #-->a   b   c
      #以上可以对一个列表进行切片然后在输出,原列表仍旧不会变
      ```
       (切片用法2.复制列表)
      示例:
      ```python
      players = ['a','b','c','d','e']
      new_players=players[:]#从头到尾复制
      for i in new_players:
          print(i)
      #-->a   b   c   d   e
      #以上可以对一个列表进行切片然后在输出,原列表仍旧不会变
      #如果我们简单的复制,那么两个变量会只想同一个内存地址,修改的就是同一个值了
      players = ['a','b','c','d','e']
      new_players=players
      new_players[0]='z'
      for i in players:
          print(i)
      #-->z   b   c   d   e
      for i in new_players:
          print(i)
      #-->z   b   c   d   e
      #可见两个都变了
      ```
      
  • 元组
    元祖看起来很像列表,但是列表是可以修改的,但是元组不可以,但是也可以重新定义来改变其值
    示例:

    #定义元组:
    dimensions=(200,50)
    print(dimensions[0])#-->200
    print(dimensions)#-->(200,50)
    #遍历
    for item in dimensions:
        print(item)
    #-->200   50
    #修改元组的值
    print(dimensions)#-->(200,50)
    dimensions=(300,250)
    print(dimensions)#-->(300,250)

小白龙马
6 声望7 粉丝

心境最重要


引用和评论

0 条评论