【第5天】Python第一阶段学习总结
2021/09/18
一. 列表基础
-
什么是列表(list)
a. 列表是Python自带的容器型数据类型:将[]作为容器的标志,里面多个元素用逗号隔开:[元素1、元素2、元素3,…]
b. 列表是可变的(支持增删改);列表是有序的(支持下标操作)
c. 列表的元素的要求:
-
任何类型的数据都可以作为列表的元素
-
同一个列表中的数据类型可以不一致。
-
-
空列表
list1 = [] print(list1, type(list1))
-
列表中的元素
list2 = [10, 'abc', 12.5, True] print(list2) a = 100 list3 = [10+2, a % 4, a ** 0.5] print(list3) list4 = [a + 2, a == 20] print(list4) list5 = [10, 'abc', a * 2, [a, 10]] print(list5)
# 练习1:定义一个列表保存5个人的年龄 ages = [10, 18, 24, 35, 88] # 练习2:定义一个列表保存一个人的姓名、年龄、性别和年龄 person = ['小明', 18, '男', '15866668888']
二. 获取元素
1. 获取单个元素
-
语法:
列表[下标] - 获取列表中指定下标对应的元素
-
说明:
a. 列表 - 可以是保存列表的变量,也可以是具体一个列表数据
b. [] - 固定写法
c. 下标 - 下标又叫索引,它是元素在列表中的位置信息。
Python中有序序列中元素的下标有两种:
a. 元素从左往右从0开始依次增加的下标值
b. 元素从右往左从-1开始依次减小的下标值heroes = ['诸葛亮', '瑶', '奥巴马', '亚索', '劫', '赵云', '孙膑'] print(heroes[3], heroes[-4]) print(heroes[-1]) print(heroes[1], heroes[-6]) # 注意:下标不能越界 # print(heroes[10])
2. 获取多个元素 - 列表切片
-
切片的完整语法:
列表[开始下标:结束下标:步长]
从开始下标开始取,取到结束下标前为止,每次下标增加指定步长。
注意:
a. 如果从开始到结束的方向和步长对应的方向不一致,那么切片的结果是[]。(步长为正表示从前往后,步长为负表示从后往前)
b. 在不为[]的时候,开始下标对应的值能取到,结束下标对应的值取不到:[开始下标,结束下标)heroes = ['诸葛亮', '瑶', '奥巴马', '亚索', '劫', '赵云', '孙膑'] print(heroes[1:4:1]) # ['瑶', '奥巴马', '亚索'] print(heroes[1:4:-1]) # [] print(heroes[-1:1:2]) # [] print(heroes[-1:1:-2]) # ['孙膑', '劫', '奥巴马'] print(heroes[0:3:1]) # ['诸葛亮', '瑶', '奥巴马'] print(heroes[-1:4:2]) # [] print(heroes[-5:5:1]) # ['奥巴马', '亚索', '劫'] print(heroes[1:-2:2]) # ['瑶', '亚索'] print(heroes[-2:2:-1]) # ['赵云', '劫', '亚索']
# 练习: heroes = ['诸葛亮', '瑶', '奥巴马', '亚索', '劫', '赵云', '孙膑'] # 1) ['诸葛亮', '亚索'] # 2) ['孙膑', '劫', '奥巴马'] # 3) ['奥巴马', '亚索', '劫', '赵云'] print(heroes[0:4:3]) print(heroes[-1:1:-2]) print(heroes[2:-1:1])
-
切片语法的省略操作
a. 省略步长 - 步长默认为1
列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]
b. 省略开始下标 - 如果步长为正表示从第0个元素开始往后取;如果步长为负表示从最后一个开始往前取。
列表[:结束下标:步长] 列表[:结束下标]
c. 省略结束下标 - 如果步长为正从开始下标开始取到最后一个元素为止;如果步长为负从开始下标开始取到最前面一个元素为止。
列表[开始下标::步长] 列表[开始下标:]
3. 遍历列表
-
方法一:直接获取元素
for 变量 in 列表: 循环体
# 练习:统计scores中90分以上的个数 count = 0 scores = [100, 90, 83, 92, 56, 78, 99, 66, 67, 95, 78] for x in scores: if x > 90: count += 1 print('90分以上的人数:', count)
-
方法二:通过下标获取元素
for 变量 in range(len(列表)): 列表[变量] 补充:len(列表) - 获取指定列表中元素的个数
scores = [100, 90, 83, 92, 56, 78, 99, 66, 67, 95, 78] # 顺序获取下标 for index in range(len(scores)): print(index, scores[index]) # 倒序获取下标 for x in range(-1, -len(scores)-1, -1): print(x, scores[x])
三. 列表的增删改操作
1. 增:添加元素
-
列表.append(元素) - 在列表的最后添加指定元素
-
列表.insert(下标,元素) - 在指定下标对应的元素前插入指定元素
films = ['绿皮书', '遗愿清单', '你的名字', '复仇者联盟'] print(films) films.append('肖申克的救赎') print(films) films.append('小丑') print(films) films.insert(2, '触不可及') print(films)
2. 删:删除元素
-
del 列表[下标] - 删除列表中指定下标对应的元素
films = ['绿皮书', '遗愿清单', '触不可及', '你的名字', '复仇者联盟', '肖申克的救赎', '小丑'] del films[2] print(films)
-
列表.remove(元素) - 删除列表中指定元素
a. 如果元素不存在会报错
b. 如果元素有多个,只删除最前面的那个
films = ['绿皮书', '遗愿清单', '触不可及', '你的名字', '复仇者联盟', '肖申克的救赎', '小丑'] films.remove('小丑') print(films)
-
列表.pop() - 取出列表中最后一个元素
列表.pop(下标) - 取出列表中指定下标对应的元素films = ['绿皮书', '遗愿清单', '触不可及', '你的名字', '复仇者联盟', '肖申克的救赎', '小丑'] films.pop() print(films) films.pop(2) print(films)
3. 改
-
列表[下标] = 值 - 将列表中指定下标对应的元素修改成指定的值
films = ['绿皮书', '遗愿清单', '触不可及', '你的名字', '复仇者联盟', '肖申克的救赎', '小丑'] films[0] = '葫芦娃' print(films)