python 6 列表

本文介绍了Python列表的重要性和使用,包括列表的作用、认识列表(定义、特点、元素类型及空列表)、查找操作(单个元素获取、切片及遍历)、增删改操作(添加元素、删除和修改元素值)以及列表的其他操作(如数学运算符和in操作)。通过实例详细解释了列表切片的完整写法和不同情况下的应用。
部署运行你感兴趣的模型镜像

python 6 列表

1. 列表的作用
(1)无列表时:

想要保存多个数据,就只能定义多个变量,然后给每个变量赋值,这个过程不简便

举例说明:

  1. 定义变量,保存一个班所有学生的成绩

  2. 保存所有学生的数据,计算算平均分

  3. 求最高分

问题:

score1 = 56
score2= 9
score3 = 23
score4 = 36
score5 = 14
score6 = 90
#2算平均分
print((score1+score2+score3+score4+score5+score6)/6)
#3算最高分
 max_score=score1
 if score1>max_score:
     max_score=score1
 if score2>max_score:
     max_score=score2
 if score3>max_score:
     max_score=score3
 if score4>max_score:
     max_score=score4
 if score5>max_score:
     max_score=score5
 if score6>max_score:
     max_score=score6
 print(max_score)
(2)有列表时:

用列表解决上述问题:

score=[12,13,233,45,567,8,9,80,82]
print ('平均分',sum(scores)/len(score))
print(max(scores))

所以,列表在需要同时处理多个数据的时候用。

2. 认识列表
1)什么是列表

非容器型数据就是一次只能保存一个数据,容器型数据就是一次可以同时保存多个数据

  • 列表是容器型数据类型,将[ ]作为容器型的标志,里面多个元素用多个元素用逗号隔开;[数据1,数据2,数据3,…]
2)列表的特点
  • 列表是可变的(可变指的是容器中元素的个数和值可变) -------- 支持增删改的操作

  • 列表是有序的----------顺序确定了位置,这个顺序就是下标(可进行下标操作)

    print([12,90,34]=[90,12,34])     #False
    print({12,23,34}={23,34,12})     #True
    #列表是有序的,集合是无序的
    
3)列表里的元素类型
  • 列表里的元素没有要求,任何类型的数据都可以作为列表的元素,同一个列表中的元素类型可以不一样,例如:在一个列表中的数据可以是字符串、布尔值、数字、列表、空值、文本、容器型数据。

    list=['abdff',34,False,None,[20,34]]
    
4)空列表
  • 空列表是列表里面一个元素都没有,
  • 表示方式: list[]、或list[ ],都是表示空列表,里面没有任何元素,
  • 容器的特点就是可以同时存储多个数据,主要是把数据如何从容器中取出来。
3.查操作

列表的核心就是列表的增删改查,最重要的是查。

1)查单个元素:即一次获取一个元素
  • 语法: 列表[下标] ----获取指定下标对应的元素

  • 语法说明:

    1)列表:指需要获取元素的列表,可以是任何结果是列表的表达式,比如:列表保存的变量,具体的列表数据等。

    nums = [100,98,34,56,80]
    

    2)[ ] : 固定写法,必须写成中括号。

    3)下标:下标又叫索引,是元素列表中,元素在列表中的位置,而下标可以是从前往后数,也可以是从后往前数。所以,列表中的每个元素都有两个索引值。

    从前往后数就是:0、1、2、3、4、5、···、N

    从后往前数就是:-1,-2,-3,···,-N

    scores=[90,23,67,94,36]
    

    scores列表中,元素23的下标,从前往后数就是1,从后往前数就是-4。

  • 注意:下标不可以越界,它必须是有效范围内的下标,就可以取出来的值,(index:索引值)

    #1举例
    num=[10,23,89,54,29,60]
    print(num[6]) 
    #这个程序会报错,会出现IndexError: list index out of range,即下标值超过了表的范围。
    #2练习,从列表中取出元素
    scores=[189,234,654,89,90,38]
    print(score[0],scores[-3],scores[3])
    #结果显示
    189 89 89
    
2)切片
  • 指从列表中一次获取多个元素(切片的语法比较复杂)

  • 必须会的是:(1)根据切片代码找出对应的运行结果,(2)会根据想要的列表中的数据写出切片代码。

  • 切片的完整写法:

    语法:列表[开始下标:结束下标:步长] ,根据下标和步长获取指定列表中的部分元素。

    • 开始下标:从哪里开始;

    • 结束下标:从哪里结束;

    • 步长告诉两个信息:

      第一个:取值的方向,步长为正,从前往后取数,步长为负,从后往前取数;

      第二个:步长的绝对值,步长的绝对值是1,表示在有效范围内,一个一个的按顺序取,步长的绝对值是2,表示在有效范围内,取一个跳一个,步长的绝对值为3,表示有效范围内,取一个跳两个;依次类推。

      #案例分析
      num=[10,23,89,54,29,60]
      print(num[1:4:2])  #起始下标是1,结束下标是4,步长是2,从前往后取,取一个数跳一个。
      
(1)怎么确定切片结果
  • 第一步:确定结果是否为空列表

    • 判断方法:看从开始下标到结束下标的方向是否和步长的方向一致,如果一致那么取值结果不为空,如果不一致,那么结果一定为空。

      (其他编程语言的下标都是从前往后开始标记位置,很少有从后往前)

      当判断出结果取值结果不为空的情况下,确定有效范围。

  • 第二步:确定有效范围

    • 开始下标对应的一定会取到,结束下标对应的元素取不到。
  • 第三步: 在有效范围内,按照步长的绝对值确定获取内容

  • 案例展示

height=[1.87,1.67,1.88,1.77,1.6]
print(height[0:3:2])
#运行结果显示
[1.87, 1.88]
(2)怎么写切片

怎么写出切片代码,得到想要的数据

步骤如下;

  • 第一步:确定开始下标;即想取得目标对应的第一个元素的下标。

  • 第二步: 确定步长,看所取目标的元素在原列表的顺序是从前往后还是从后往前。从前往后+,从后往前- ,确定想取数据是相间隔几个元素,一个一个取,步长绝对值为1.间隔一个取,步长绝对值就是2,间隔两个取,步长绝对值就是3.

  • 第三步:确定结束下标;保证需要获取的数据在有效范围内,开始下标对应的元素要取得到,结束下标的元素取不到。

  • 案例展示

    #想取这个列表中的1.87,1.77
    height=[1.87,1.67,1.88,1.77,1.6]
    print(height[0:4:+3])
    #运行结果显示
    [1.87, 1.77]
    
(3)切片的省略写法

a.省略步长:相当于步长是1(步长与冒号都不写)

  • 写法:列表[开始下标:结束下标]
height=[1.87,1.67,1.88,1.77,1.6]
print(height[1:3])
##运行结果显示
[1.67, 1.88]

b. 省略开始下标 : 表示从头开始,由步长的正负决定从哪个方向开始取值,步长为正,即从前往后开始,步长为负,即从后往前开始。

  • 写法:列表[:结束下标:步长]

    height=[1.87,1.67,1.88,1.77,1.6]
    print(height[:-4:-2])  #表示从后往前,取一个跳一个,一直取到1.67,不包括1.67
    print(height[:3])  #省略起始下标,表示是从头开始,省略步长,说明是+1,
    ##运行结果
    [1.6, 1.88]
    [1.87, 1.67, 1.88]
    

c.省略结束下标 :如果步长为正就从开始下标开始一直取到最后一个元素,如果补偿为负就从开始下标开始,一直取到第一个元素。

  • 写法:列表[起始下标::步长] (一直取到两头的元素取完为止)

    height=[1.87,1.67,1.88,1.77,1.6]
    print(height[1::+1])  #从下标为1,从前往后,一个一个取,一直取完为止
    #运行结果显示
    [1.67, 1.88, 1.77, 1.6]
    
3)遍历: 一个一个的获取列表中的所有元素
  • 方法1;【通过变量获取列表中的所有元素】
    for 变量 in 列表:
    循环体

  • 方法2:通过下标来遍历列表【先拿到下标后,再遍历】
    for x in range(len(列表))
    循环体重复获取到的是每个元素的下标,然后需要通过:列表[小标]再获取元素

  • 方法3:同时获取下标和元素
    for 变量1,变量2 in enumerate(列表):
    print(变量1,变量2)

games = ['王者荣耀','lol','永劫无间','spex','2k','植物大战僵尸','开心消消乐']
for x in games:
     print(x)
 for index in range(len(games)):                  0,1,2,3,4,5,6,7   #-1,-2,-3,-4,-5,-6,-7,-8
     print(index,games[index]
 for index ,item in enumerate(games)
     print(index,item)
 ##练习1 计算nums中所有元素的和
nums =[12, 45, 8.34, 56, 23]
sum = 0
for x in nums:
    sum += x
print(sum)
# 练习2:统计nums中所有偶数的个数
nums =[23, 88, 90, 88, 67, 55, 11]
count = 0
for x in nums:
    if x % 2 == 0:
        count += 1
print(count)
# 练习3: 统计list1中字符串的个数
list1 =[109, 23.4, True, 'abc', 'helo', 23, '12', False, None]
count = 0
for x in list1:
    if type(x) == str:
        count += 1
print(count) 
4.增删改操作
1)增:添加元素

添加方法如下:

  • 第一种:列表.append(元素) -----列表的最后添加指定元素

  • 第二种: 列表.insert(下标,数据) ------在列表指定下标对应元素前插入指定数据.

  • 案例展示

    ##1.第一种添加
    nums = [10,20,30]
    print(nums)
    nums.append(100)
    print(nums)
    ##运行结果显示
    # [10, 20, 30, 100]
    ##2.第二种添加
    nums = [10,20,30]
    nums.insert(-1,100)
    print(nums)
    nums.insert(0,200)
    print(nums)
    ##运行结果显示
    [10, 20, 100, 30]
    [200, 10, 20, 100, 30]
    
    • 实际应用

      ##将列表nums中的所有奇数放入一个新的列表
      nums = [17,89,90,81,84,4,56]
      newnums=[ ]
      for x in nums:
           if x % 2= 0:
               newnums.append(x)
      print(newnums)
      ##运行结果展示
      [17, 89, 81]
      
2)删

删除方法如下

  • 第一种:del 列表[下标] ---- 删除列表中指定下标对应的元素,如果不写对应下标元素,会删除整这个列表。

    • 语法:del +空格+列表[下标]—即删除对应下标位置的数据
  • 第二种:列表.remove(‘元素’) - 删除列表中指定元素(如果元素不存在会报错:)

    • 列表.remove(‘元素’)
    • 注意:直接删存在问题:
      (1)列表里面会不存在这个问题
      (2)如果需要删除的元素有多个,只会删除列表中第一个元素
  • 第三种:列表.pop(下标) - 取出列表指定下标对应的元素

  • 这三种删除语法的区别:第一种与第二种删掉元素,相当于是直接从内存删除,第三种,只是不存在列表中,从列表中拿出去

    nums1 =[12, 45, 8.34, 56, 23]
    del nums1[1]
    print(nums1)
    nums2=[12, 45, 67,89, 56, 23]
    nums2.remove(89)
    print(nums2)
    nums3=[12, 45, 84, 56, 23]
    nums3.pop(2)
    x=nums3.pop(2)
    print(nums3,x)
    ##运行结果
    [12, 8.34, 56, 23]
    [12, 45, 67, 56, 23]
    [12, 45, 23] 56
    
3)改:修改元素的值
  • 语法:列表[下标]=新元素 — 修改列表中指定下标的元素为新的元素

  • 案例

    ##将scores中所有不及格的分数全部修改成‘重修’
    ##score = [89,23,79,99,45,60,78,59]
    for index,item in enumerate(score):
        if item < 60:
            score[index]='重修'
    print(score)
    ##运行结果显示
    [89, '重修', 79, 99, '重修', 60, 78, '重修']
    
5.列表相关操作
1)数学运算符:
  • 数学运算符:+、*

    • 两个列表的加法运算:列表1+列表2 – 将两个列表中的元素一次合并成一个新的列表。

    • 语法:列表1+列表2

      list1=[12,23,45,67,89]
      list2=[34,564,32,12]
      list3=list1+list2
      print(list3)
      ##运行结果显示
      [12, 23, 45, 67, 89, 34, 564, 32, 12]
      
  • 列表的乘法运算

    • 方法:列表N或者N列表 - 列表中元素重复N遍产生一个新的列表

      list=[1,2,3,6,8,9,0]
      list2=3*list
      list3=list*3
      print(list2,list3)
      ##运行结果展示
      [2, 6, 8, 9, 2, 6, 8, 9, 2, 6, 8, 9]
      [2, 6, 8, 9, 2, 6, 8, 9, 2, 6, 8, 9]
      
2)in操作
  • 作用:用来判断列表中是否存在指定元素

  • 语法:

    • 元素 in 列表 -----判断列表中是否存在指定元素

    • 元素 not in 列表 -----判断列表中是否不存在指定元素

    • 注意:其结果为布尔值,True、False.

      score=[10,23,56,89,90]
      print(10 in score)
      print(23 not in score)
      print([23] in score)
      print(92 not in score)
      ##运行结果
      True
      False
      False
      True
      

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值