列表基础和操作

本文介绍了Python编程中列表的基础知识,包括列表的定义、可变性、有序性以及对元素无类型要求的特点。讲解了如何通过索引和切片获取列表中的元素,包括正向和反向取值,以及步长的设定。此外,还探讨了遍历列表的三种方法,包括for循环和enumerate函数的使用。
摘要由CSDN通过智能技术生成
补充:如果if后面的条件语句不是布尔值,就将表达式的结果转换成布尔再看是否为True

一、列表基础

# 需求:定义变量保存6个学生的成绩
# 方法1:-不使用列表
# 方法2:-使用列表
scores = [90, 87, 92, 67, 55, 69, 81, 99]
# 计算平均分
print(sum(scores)/len(scores))
# 计算最高分
print(max(scores))
  1. 认识列表(list)

    1)列表是容器型数据类型(序列);将[]作为容器的标志,里面多个数据(元素)用逗号隔开:[数据1,数据2,…]
    2)可变性:列表是可变的(可变指的是列表中元素的个数和元素的值可变–说明列表支持增删改)
    有序性:列表是有序的(有序是指元素有顺序对应的位置的信息;元素的顺序影响结果–支持下标(索引)操作)
    3)列表对元素的要求:没有要求,任何类型的数据都可以作为列表的元素

# 使用推荐:同时处理多个数据时,考虑列表
#注:元素--容器中每个独立的数据,就是这个容器的元素    
# 1)空列表
list1 = []
print(list1)

# 2)列表是有序的
print([10, 20, 30] == [30, 10, 20])# False
# 集合中的元素是无序的
print({10, 20, 30} == {30, 10, 20})# True

# 3)列表元素可以是任何类型的数据
# a.列表中元素可以是多个相同类型的数据
list2 = [10, 20, 30]
names = ['小赞', '小啵', '小爷']

# b.列表中元素可以是多个不同类型的数据
list3 = [10, '小毅', True, None]

# c.列表中的元素也可以是列表
list4 = [10, 11, [12, 13]]

二、列表查操作

  1. 查单个 - 获取一个元素

    1)语法:
    列表[索引]

    2)说明:
    列表 - 需要获取元素的列表对象(可以是保存一个列表的变量,也可以是具体的列数据(eg,[10, 20, 30][]))
    [] - 固定写法
    索引 - 又叫下标;指的是元素在列表中的位置【不能越界】
    列表一旦确定,列表中的每个元素对应的索引就确定
    a.元素从前往后索引从0开始不断增加
    b.元素从后往前索引从-1开始不断减少

    # 查-获取列表中元素的值
    nums = [10, 20, 30, 40]
    print(nums[1])
    print([10, 20, 30, 40][1])
    
    print(nums[-1])
    print(nums[3])
    
    # print(nums[4]) #报错,索引不能越界
    # print(nums[-6])
    
  2. 切片 - 同时获取多个元素(列表切片的结果是列表)

    1)完整语法:
    列表[开始下标:结束下标:步长]
    a.说明
    列表 - 需要获取元素列表
    [] - 固定写法
    开始下标、结束下标、步长 - 必须是整数
    开始下标 - 决定从哪儿开始取
    结束下标 - 决定取到哪儿结束
    步长 - 决定取的时候怎么取(一个一个按顺序取,还是跳着取;是从前往后(步长为正)还是从后往前取(步长为负))
    2)使用切片
    a.确定切片结果
    第一步:先确定结果是否为空,看开始下标对应的位置到结束下标对应的位置的方向和步长的方向是否一致
    一致结果不为空,不一致结果一定为空。
    第二步:如果结果不为空,再确定切片的有效范围:开始下标对应的元素能取到,结束下标对应的元素取不到。
    第三步:在有效范围内容,按照步长的方向和绝对值获取元素。
    方向:步长为正,从开始下标到结束下标从前往后取;步长为负就从后往前取
    绝对值:绝对值为1,就一个一个取;绝对值为2,取一个跳一个在取一个;绝对值为3,取一个跳两个再取一个;…

    b.怎么写切片代码获取指定元素
    第一步:确定开始下标–需要的结果中,第一个数据在列表中的下标
    第二步:确定结束下标–结束下标是结果中最后一项的后一个数据或者前一个数据的下标(看方向)
    第三步:确定步长–正负看趋势(从前往后取还是从后往前取);再看绝对值(是一个一个取的,还是跳着取的)

    movies = ['无名', '黑暗骑士', '心灵奇旅', '疯狂动物城', '寻梦环游记', '热烈', '满足', '庆余年','陈情令','有翡']
    print(movies[1:3:1])
    print(movies[0:-2:2])
    print(movies[5:0:2])#[]方向不一致为空
    print(movies[3:-1:-1])#[]
    print(movies[-2:2:-2])#['陈情令','满足', '寻梦环游记']
    print(movies[6:2:-3])#[ '满足','疯狂动物城']
    print(movies[1:-3:3])#['黑暗骑士', '寻梦环游记']
    print('---------------------------------------------------------')
    print(movies[1:-1:1])#['黑暗骑士', '心灵奇旅', '疯狂动物城', '寻梦环游记', '热烈', '满足', '庆余年','陈情令']
    print(movies[-1:1:-2])#['有翡','庆余年','热烈','疯狂动物城']错误
    print(movies[-2:5:2])#[]错误
    print(movies[0:-2:4])#['无名','寻梦环游记']
    print(movies[5:-1:2])#[ '热烈','庆余年']
    print(movies[6:-6:-1])#['满足', '热烈']
    print('---------------------------------------------------------------')
    

    3)切片省略的写法
    完整的切片语法:列表[开始下标:结束下标:步长]
    a.省略步长 - 相当于步长为1
    列表[开始下标:结束下标]
    b.省略开始下标 - 获取元素的时候从头开始取【步长为正,从第一个元素开始;步长为负,从最后一个元素开始取】
    列表[:结束下标:步长]
    c.省略结束下标 - 获取元素时,从开始下标开始,取完为止【一直取到最后,取到最后一个或者第一个】[能取到最后一个]
    列表[开始下标::步长]

    # movies = ['无名', '黑暗骑士', '心灵奇旅', '疯狂动物城', '寻梦环游记', '热烈', '满足', '庆余年','陈情令','有翡']
    # 省略步长
    print(movies[1:4]) # ['黑暗骑士', '心灵奇旅', '疯狂动物城']
    print(movies[-1:1]) #[]
    # 省略开始下标
    print(movies[:-2:2]) #['无名','心灵奇旅','寻梦环游记','满足']
    print(movies[:2:-2]) #['有翡','庆余年','热烈','疯狂动物城']
    print(movies[:4])#['无名', '黑暗骑士', '心灵奇旅', '疯狂动物城']
    # 省略结束下标
    print(movies[2::2])#['心灵奇旅','寻梦环游记', '满足','陈情令']
    print(movies[4::-1])#['寻梦环游记','疯狂动物城','心灵奇旅','黑暗骑士','无名']
    print(movies[3:])#['疯狂动物城', '寻梦环游记', '热烈', '满足', '庆余年','陈情令','有翡']
    
    print(movies[::-2])
    
  3. 遍历 - 将列表中所有的元素一个一个的获取出来

    方法1:
    for 变量 in 列表:
    循环体(变量依次获取到的就是列表中的每个元素)

    方法2:
    通过获取所有元素的下标来获取元素
    for 变量 in range(len(列表)):
    循环体(列表[变量])

    方法3:
    for 变量1,变量2 in enumerate(列表):
    循环体(变量1依次获取的是每个元素的下标;变量2依次获取的是每个元素)

# 注:len(列表) - 列表长度

scores = [90, 89, 87, 79, 93, 67, 56, 43, 99]
# 方法1
for i in scores:
    print(i)

# 求总分
sum1 = 0
for i in scores:
    sum1 += i
print(sum1)

# 统计90分以上的学生的人数
count = 0
for i in scores:
    if i > 90:
        count +=1
print('90分以上的学生的人数:',count)

print('-------------------------------------------------------')
list1 = [[10,20], [100,200], [1,2]]
for i in list1:
    print('x:',i[-1])

print('--------------------------------------------------------')
for i in range(len(scores)):
    print(i,scores[i])

print('--------------------------------------------------------')
for index, item in enumerate(scores):
    print('index:',index,'item:',item)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值