day05-列表
认识列表
- 什么是列表?(list)
"""
1)列表是容器型数据类型(可以同时保存多个数据);
2)将[]作为容器标志,里面多个元素(一个容器中每隔独立的数据就是元素)用逗号隔开:[元素1, 元素2, 元素3,...]
3)可变(可变☞元素的个数, 元素值, 元素顺序可变) - 支持增删改
有序 - 支持下标操作
4)元素:任何类型数据都可以作为列表的元素
"""
-
空列表 - [], [(空格)]
-
元素类型
可以相同
可以不同
可以是容器型数据
-
列表有序
-
集合无序
获取元素
- 索引 - 获取单个元素(下标越界报错)
列表[下标] - 获取指定列表中指定下标对应的元素
"""
1) 列表 - 具体列表 / 保存列表的变量
2) [] - 固定写法
3) 下标 - (整数)索引, 元素在有序序列中的位置信息
python中元素对应的下标有两种:
从前往后,从0开始不断增加;
从后往前,从-1开始不断减小.
"""
报错, 下标越界
- 切片 - 获取部分元素(下标越界不报错)
- 完整语法
列表[开始下标:结束下标:步长]
切片过程
"""
第一步: 结果是否为空 - 步长方向与开始下标到结束下标方向是否一致,不一致结果为空
第二步: 有效范围:[开始下标, 结束下标) - 半闭半开
第三步: 获取元素: 步长的正负确定获取方向, 绝对值确定获取方式(获取间隔),
如果绝对值为1,表示挨着取; 绝对值为2,表示间隔1个;绝对值为3,表示间隔为2(跳2个)
"""
切片获取想要的结果
"""
第一步: 开始下标: 结果中第一个元素在原列表中的下标
第二步: 确定步长: 获取元素的方向确定正负; 取值的时候跳过的情况确定绝对值
第三步: 结束下标: [开始下标, 结束下标) - 结束下标+1或者-1
对应的范围能够包含所有的已经获取到的元素
"""
- 省略写法
"""
列表[开始下标:结束下标:步长]
1.省略步长:列表[开始下标:结束下标] - 省略步长时,步长为1
2.省略开始下标: 列表[:结束下标:步长], 列表[:结束下标]
如果步长为+,从第一个元素开始往后取; 如果步长为-,从最后一个开始往前取
3.省略结束下标:列表[开始下标::步长], 列表[开始下标:], [:], [::步长]
如果步长为正,从开始下标往后取到最后一个元素; 如果步长为负,从开始下标往前取到第一个元素
"""
- 遍历列表 - 将列表中的元素逐个取,直到取完
"""
方法1 - 直接获取元素
for 变量 in 列表:
循环体(变量依次取到的就是列表中的元素)
方法2 - 通过遍历下标来遍历元素
for 下标 in range(len(列表):
循环体(变量依次取到列表中元素下标, 列表[下标]获取元素)
方法3 - 同时获取下标和元素
for 变量1, 变量2 in enumerate(列表):
循环体(变量1依次获取到元素下标, 变量2依次获取到元素, 两者相互关联)
"""
练习1:求nums中所有元素的和
nums = [28, 73, 55, 60, 98, 21]
sum1 = 0
for i in nums:
sum1 += i
print(sum1)
print(sum(nums))
练习2:统计nums中奇数的个数
nums = [28, 73, 55, 60, 98, 21]
count = 0
for i in nums:
if i % 2:
count += 1
print(count)
增删改
- 增
1)列表.append(元素) - 在列表最后添加指定元素
2)列表.insert(下标, 元素) - 在列表中指定下标对应的元素前插入指定元素(下标可以越界, 比append多此一举)
- 删
del 列表[下标] - 删除列表中指定下标对应的元素
列表.remove(元素) - 删除列表中指定元素
列表.pop() - 取出列表中最后一个元素
列表.pop(下标) - 取出列表中指定下标元素
- 改
列表[下标] = 新值 - 将列表中指定下标对应的元素修改为指定的值
- in 和 not in
元素 in 列表 - 判断列表中是否存在指定元素,如果存在就返回True, 否则返回False