python学习(列表上)

        列表是python容器中比较重要的一类,其他的python容器还有字典、元组、集合等。但是和列表有相似的地方。所以列表的内容会分为上下两篇,知识点会多一些也更加细致,为后面的容器学习打下基础

一、什么是列表

1、列表的作用

        如果需要同时处理多个数据的时候,就需要使用容器

# 案例:定义一个变量保存一个所有学生的成绩
score = [90,82,56,92,77,99,53,88,83,95]
print(sum(score)/len(score))
print(max(score))
2、什么是列表

        列表是容器型数据类型(可以同时保存多个数据),将[]作为容器的标志,里面多个数据(元素)用逗号隔开:[数据1,数据2,数据3,…]

3、特点

        列表是可变的(可变指的是元素的个数和值可变 → 列表支持增删改)

        列表是有序的(顺序影响结果,支持下标)

print([10,20,30] == []10,20,30)    # False
print([10,20,30] == []10,30,20)    # True
4、列表的元素

        任何类型的数据都可以作为列表的元素

l2 = [10, 'abc', 12.5, [10,20]]
5、空列表:l1 = [] → 不含任何元素的空表

二、列表的操作

1、查单个 → 获取列表中一个元素

        (1)语法:

                        列表[下标] → 获取列表中指定下标对应的元素

        (2)说明:

                        “列表”:可以是具体的列表值也可以是保存列表的变量

                        “[]”:固定写法

                        “下标”:又叫索引,他是元素在列表中的位置信息

                             列表一旦确定,列表中的每个元素都会对应两个固定下标,元素在列表中的位置

                             下标的确定方式:a.从前往后从0开始不断加1

                                                          b.从后往前从-1开始不断减1

                             注意:下标不能越界

name = [666,777,888,999,333,555]
print(name[1])
print(name[-1])
print(name[5])
'''
777
555
555
'''

三、列查操作

1、切片

        (1)定义:一次获取列表中多个(部分)元素

        (2)完整语法:列表[开始下标:结束下标:步长]

movies = ['逐梦演艺圈','上海堡垒','鲨卷风','无名之辈','十面埋伏','蜘蛛侠-纵横宇宙','消失的他']
print(movies[1:4:2])        # ['上海堡垒', '无名之辈']
print(movies[-1:2:1])       # []
print(movies[0:-2:-1])      # []
print(movies[-1:1:-2])      # ['消失的他', '十面埋伏', '鲨卷风']

        (3)确定切片的结果

                第一步:看切片结果是否为空(看从开始下标到结束下标的方法和步长是否一致,如果                                 不一致结果肯定为空列表)

                第二步:确定有效范围(开始下标对应的元素能取到,结束下标对应的元素取不到)

                第三步:在有效范围内按照步长来获取元素

                              步长的正负:步长为正在有效范围内从 前往后去,步长为负在有效范围内从后                                                      往前取

                              步长的绝对值:绝对值为1,就一个一个的取;绝对值为2就取一个跳过一个再                                                         取一个…绝对值为3就取一个跳过两个取一个…

        (4)切片的代码

                确定开始下标的值:需要获取的结果中第一个元素对应的下标

                确定结束下标的值:需要获取的结果中的最后一个元素的后面那个元素或者前面那个元                                                  素的下标(看获取方向)

                确定步长:确定方向(从前往后取步长为正,否则为负)和绝对值(一个一个取绝对值为                                        1;取1个跳过1个再取一个…绝对值为3就取一个跳过两个取一个…

# 练习
movies = ['逐梦演艺圈', '上海堡垒', '鲨卷风', '无名之辈', '十面埋伏', '蜘蛛侠-纵横宇宙', '消失的他']
# ['逐梦演艺圈', '上海堡垒', '鲨卷风']
print(movies[0:3:1])

# [ '鲨卷风', '无名之辈']
print(movies[2:-3:1])

# ['上海堡垒', '消失的他']
print(movies[1:7:5])

# ['十面埋伏', '无名之辈', '鲨卷风']
print(movies[-3:1:-1])

# ['上海堡垒', '鲨卷风', '无名之辈', '十面埋伏', '蜘蛛侠-纵横宇宙']
print(movies[1:-1:1])

# ['蜘蛛侠-纵横宇宙', '十面埋伏', '无名之辈', '鲨卷风']
print(movies[-2:1:-1])

# ['上海堡垒',  '十面埋伏']
print(movies[1:-2:3])

# ['消失的他', '十面埋伏', '鲨卷风']
print(movies[-1:1:-2])

        (5)缩略写法 → 列表[开始下标:结束下标:步长]

                A.省略步长 → 步长就是1 → 列表[开始下标:结束下标:]

                B.省略开始下标 → 从头开始取(头可能是第一个元素,也可能是最后一个元素,由步                                                  长的正负决定)

                                          → 列表[:结束下标:步长]

                C.省略结束下标 → 有效范围是从头开始一直到最后一个元素或者第一个元素(由步长                                                   的正负决定)

                                          → 列表[开始下标::步长]

movies = ['逐梦演艺圈', '上海堡垒', '鲨卷风', '无名之辈', '十面埋伏', '蜘蛛侠-纵横宇宙', '消失的他']
print(movies[2:-2])
print(movies[-1:1])

print(movies[:3:1])         # ['逐梦演艺圈', '上海堡垒', '鲨卷风']
print(movies[:3:-2])        # ['消失的他', '十面埋伏']
print(movies[:-2])          # ['逐梦演艺圈', '上海堡垒', '鲨卷风', '无名之辈', '十面埋伏']

print(movies[2::2])         # ['鲨卷风', '十面埋伏', '消失的他']
print(movies[3::-1])        # ['无名之辈', '鲨卷风', '上海堡垒', '逐梦演艺圈']
print(movies[-3:])          # ['十面埋伏', '蜘蛛侠-纵横宇宙', '消失的他']
print(movies[::-2])         # ['消失的他', '十面埋伏', '鲨卷风', '逐梦演艺圈']

四、遍历列表 -- 将列表中的元素一个一个的取出来

方法1: 直接获取元素

        for 变量 in 列表:

                 循环体(变量依次取到的就是列表中的每个元素)

tvs = ['亮剑', '甄嬛传', '如懿传', '爱情公寓', '知否', '康熙王朝', '三国演义', '流星花园', '武林外传']

for x in tvs:
    print(x)

方法2:先获取每个元素的下标值,然后再根据下标获取元素

        for 变量 in range(len(列表)):

                循环体(变量依次取到的是每个元素的下标值)

 for index in range(len(tvs)):
     print(index, tvs[index])

方法3:同时获取每个元素和元素对应的下标

        for 变量1, 变量2 in enumerate(列表):

                循环体(变量1依次取到的是每个元素的下标,变量2依次取到的时候每个元素)

for index, item in enumerate(tvs):
    print(index, item)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值