06 列表

本文介绍了Python列表的基础知识,包括列表的作用、创建、空列表,以及查找元素的方法如单个元素获取、切片和遍历。接着详细讲解了列表的增删改操作,如append、insert、remove、pop等方法,还探讨了列表的数学运算、比较运算、in和not in操作。此外,还涉及列表相关函数如max、min、sorted、sum、len和转换函数list。最后,文章介绍了列表的相关方法,如clear、copy、count等,并讲解了列表推导式的两种结构及其应用场景。
摘要由CSDN通过智能技术生成

01认识列表

1.列表的作用 - 提示处理多个数据的时候,列表的存在可以让问题变得简单

2.认识列表(list)

  1. 列表是Python自带的类型,属于容器型数据类型(可以提示保存多个数据);将[]作为容器的标识,里面多个元素(容器中每个独立的数据)用逗号隔开:[数据1,数据2,数据3,…]

  2. 特点
    a. 列表是可变的(可变指的是元素的个数和元素的值可变) - 支持增删改操作
    b. 列表是有序的 - 支持下标(索引)操作

    #有序序列顺序影响结果(字符串和列表有序)
    print([10, 20, 30] == [20, 10, 30])  -  False
    print('abc' == 'bac')  -  False
    #集合无序
    print({
   10, 20, 30} == {
   20, 30, 10})  -  True
  1. 元素
    a. 任何类型的数据都可以作为列表的元素
    b. 同一个列表可以放不同类型的数据
list4 = [10, 'abc', True, None, [1, 2], (10, 20), {
   11, 22}, {
   'a': 100}]

3.空列表

list1 = []

02 查 - 获取列表中的元素

1. 查单个 - 获取列表中的一个数据

  1. 语法:
列表[下标]  -  获取列表中指定下标对应的函数
num = [50, 78, 99, 30]
print(num[0], num[-4])      # 50 50
  1. 说明:
    列表 - 任何结果是列表的表达式(具体的一个列表,保存列表的遍历等)
    [] - 固定写法
    下标 - 即索引;指的是列表中的元素在列表中的位置信息
    每个元素的下标值有两个: a. 从前往后,从0开始不断递增的下标值
    b. 从后往前,从-1开始不断递减的下标值

  2. 注意: 下标不能越界

num = [50, 78, 99, 30]
print(num[4])      # 报错 IndexError: list index out of range

2. 切片 - 获取列表中的部分数据

1) 完整语法:

列表[开始下标:结束下标:步长]
a. 怎么确定一个切片结果:

第1步: 看切片的结果是否为[] -> 看从开始下标位置到结束下标对应的位置的方向和步长对应的方向是否一致;
步长为正: 表示从前往后取
步长为负: 表示从后往前取
第2步: 确定有效范围 -> 开始下标对应的元素能取到,结束下标对应的元素取不到 前闭后开 ;
第3步: 通过步长在有效范围内获取元素
步长为正,在有效范围内从前往后取;
步长为负,在有效范围内从后往前取;
步长绝对值:
绝对值为1就一个一个的取;
绝对值为2就取1个跳过1个再取1个再跳过1个;
绝对值为3就就取1个跳过2个再取1个再跳过2个;

names = ['西施', '孙尚香', '刘备', '马可波罗', '赵云', '孙膑', '后羿', '鲁班7号', '百里守约']
print(names[1:5:2])        # ['孙尚香', '马可波罗']
print(names[-1:5:1])       # []
print(names[2:7:-2])       # []
print(names[-2:-7:-2])     # ['鲁班7号', '孙膑', '马可波罗']
print(names[-1:0:-3])      # ['百里守约', '孙膑', '刘备']
print(names[-1:3:1])       # []
print(names[4:-2:2])       # ['赵云', '后羿']
print(names[-3:0:3])       # []
print(names[-2:0:-2])      # ['鲁班7号', '孙膑', '马可波罗', '孙尚香']
b. 根据目标数据写切片的代码

第1步: 确定开始下标 - 想要获取的所有元素中第一个元素的下标
第2步: 确定结束下标 - 想要获取的所有元素中最后一个元素前面(从后往前取)或者后面(从前往后取)那个元素的下标
第3步: 确定步长 - 通过获取元素的方向确定正负;
通过获取方式确定绝对值

names = ['西施', '孙尚香', '刘备', '马可波罗', '赵云', '孙膑', '后羿', '鲁班7号', '百里守约']
# ['孙尚香', '刘备', '马可波罗', '赵云', '孙膑', '后羿', '鲁班7号']
print(names[1:-1:1])
# ['百里守约', '鲁班7号', '后羿']
print(names[-1:-4:-1])
# ['刘备', '赵云', '后羿']
print(names[2:7:2])
# ['后羿', '刘备']
print(names[-3:1:-4])

2) 切片的省略语法

a. 省略步长

相当于步长是1

列表[开始下标:结束下标]
tvs = ['一人之下', '海贼王', '名侦探柯蓝', '甄嬛传', '越狱', '行尸走肉', '绝命毒师', '穹顶之下']
print(tvs[1:-1])    # ['海贼王', '名侦探柯蓝', '甄嬛传', '越狱', '行尸走肉', '绝命毒师']
print(tvs[-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值