Day 5 运用Python之列表
列表
-
列表是一个容器型数据,以[]作为容器标志,其中元素与元素之间用逗号隔开
-
可变性: 元素的个数和元素本身的值是可变的,换句话说,列表支持增删改操作
-
有序性: 创建列表时,元素是有顺序的,而且是确定的,支持下标缩影,查询操作
-
元素:容器中每一个独立的数据
-
空列表
list1 = [] # 返回的bool值为False
-
列表中的元素可以是任何数据类型的数据
list2 = [10, 20, [30, 40], {10, 20}]#列表中的元素也可以是列表,字典,集合 list3 = [1.0, 2, 0, None, True]
列表的查询操作
-
获取列表中元素的值,列表[索引值]
-
索引值:下标,列表中元素的位置信息,列表一旦确定,列表中每个元素的索引值就确定了,每个元素对应从左到右,从右到左两个下标值,从左到右,从0到无穷,从右到左,从-1到负无穷
-
切片:从一个列表中,获取多个元素,返回值是一个列表(小列表)
movies = ['肖生克的救赎', '霸王别姬', '阿甘正传', '钢铁侠', '蜘蛛侠', '蝙蝠侠', '蚁人', '雷神', '复仇者联盟'] 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]) # ['蚁人', '蝙蝠侠', 蜘蛛侠'']
-
一般取开始下标,结束下标是开区间,布长表示连续取第几个
-
当开始下标和结束下标所对应的方向,同步长对应的方向相反时,切片返回的是空列表[]
省略切片
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]) # ['复仇者联盟', '蚁人', '蜘蛛侠', '阿甘正传', '肖生克的救赎']
- 省略开始下标,表示从头开始取数,并且是开始下标,同时方向和步长方向相同
- 省略结束下标,表示从某个位置开始,取到结束位置,并且方向和布长方向一致,同时左右方向都能取到,非常特别,需记住
遍历列表
-
直接获取元素
scores = [90, 89, 87, 81, 79, 93, 67, 56, 43, 99] # 方法1: for x in scores: print(x)
-
获取元素下标
scores = [90, 89, 87, 81, 79, 93, 67, 56, 43, 99] for x in range(len(scores)):#先遍历得到下标值,再通过查询下标操作得到元素对应的值 print(x, scores[x])
-
获取元素和元素下标
for index, item in enumerate(scores):#enumerate()函数,返回列表的两个值,一个是下标,一个是元素 print('index:', index, 'item:', item)