day-6列表
1、认识列表
1、什么是列表
1)
- 列表是容器型数据类型(一个容器可以保存多个数据)
- 将中括号([])作为容器的标志,里面多个元素用逗号隔开:[元素1,元素2,元素3,…]
- 非容器 - 一个变量只可以保存一个数据
- 容器 - 一个变量可以保存多个数据
2)
- 列表是可变的(指的是列表中元素的个数、元素的值和元素的顺序可变);列表是有序的(每个元素都有位置对应的索引值)
3)元素的要求 - 没有要求
- 任何类型的数据,都可以作为列表的元素。而且同一个列表可以保存不同类型的数据。
2、列表的查操作
1、查 - 获取列表元素
1)查单个 - 获取一个元素
语法:
列表[下标] - 获取指定下标对应的元素
说明:
列表 - 任何结果是列表的表达式,一般用保存列表的变量
[] - 固定写法
下标 - 下标又叫索引,它是有序序列中元素在序列中的位置信息
列表中每一个元素都有两个下标值,一个是从0开始依次增加的下标值(0表示第一个元素,1表示第二个元素)
一个是从-1开始依次减少的下标值(-1表示倒数第一个元素,-2表示倒数第二个元素,....)
注意:下标不能越界(下标的有效范围)
2)切片
1、完整语法
列表[开始下标: 结束下标: 步长]
说明:
开始下标、结束下标 - 下标值;用来确定下标有效范围:[开始下标,结束下标)左闭右开
步长 - 正整数或者负整数;用正负号来决定获取的方向(正- 从前往后取;负 - 从后往前取),用绝对值来决定获取的时候是否跳着取,跳几个
: - 固定写法
获取原理:
1)如果步长对应的方向和开始下标对应的元素到结束下标对应的元素的方向不一致,切片无效,结果是空列表
2)如果切片有效,先确定有效范围([开始下标,结束下标)),然后在有效范围内根据步长方向按照步长的绝对值获取元素,创建新的列表
film_names = ['碟中谍', '肖申克的救赎', '霸王别姬', '星际穿越', '阿Q正传', '大话西游', '绿皮书', '这个杀手不太冷']
# 练习2:写切片,获取列表元素,得到一下结果
# ['肖申克的救赎', '霸王别姬', '星际穿越']
# ['碟中谍', '肖申克的救赎']
# ['霸王别姬', '阿Q正传', '绿皮书']
# ['这个杀手不太冷', '绿皮书', '大话西游', '阿Q正传']
# ['阿Q正传', '肖申克的救赎']
print(film_names[1: 4: 1])
print(film_names[0: 2: 1])
print(film_names[2: 7: 2])
print(film_names[-1: -5: -1])
print(film_names[-4: -8: -3])
问题:如果从前往后取想要获取到最后一个数据;或者从后往前取想要获取第一个数据
方法一:结束下标越界
方法二:省略结束下标
- 省略语法:列表[开始下标:结束下标:步长]
- a.省略步长:列表[开始下标:结束下标] - 省略步长,步长就是1
- b、省略开始下标:列表[:结束下标:步长] - 如果步长为正就从第一个元素开始往后取;如果步长为负就从最后一个元素往前取
- 省略结束下标:列表[开始下标::步长] - 如果步长为正,取到最后一个元素为止,如果步长为负,取到第一个元素为止
3、遍历 - 一个一个的取,取完
- 方法1: - 直接获取元素
for 元素 in 列表:
pass
- 方法2:- 先获取元素下标,再根据下标获取元素
for 下标 in range(len(列表)) - (len取的是列表的长度)
(变量取到的是元素的下标)
- 方法3:
for<