day6.列表基础
1.作业
1.已知一个数字列表,求列表中心元素。
1
2
3
4
5
6list1 = [18,99,87,54,63,54,55] if len(list1) // 2 == 0: print(list[len(list1)//2],list[len(list1)//2-1]) eles: print(lsit[len(list1)//2])
2.已知一个数字列表,求所有元素和。
1
2
3
4
5
6list1 = [12,33,88,96,78] sum = 0 for x in list1: sum += x print(sum)
3.已知一个数字列表,输出所有奇数下标元素。
1
2
3list1 = [10,22,33,44,55,66,77] print(1::2)
4.已知一个数字列表,输出所有元素中,值为奇数的元素。
1
2
3
4
5list1=[13,54,66,39,45,22] for x in list1: if x // 2 != 0: print(x)
5.已知一个数字列表,将所有元素乘二。
例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]
1
2
3
4
5
6nums = [5,6,7,8,9] for x in range(len(nums)): y = nums[x] * 2 nums[x] = y print(nums)
6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的
例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘大黄’, ‘张三’, ‘张三’, ‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]
1
2
3
4
5
6
7names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三'] new_name = [] for x in names: if x not in new_name: new_name.append(x) print(new_name)
7.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
1
2
3
4
5
6
7
8list1=[7,8,9,6,5,4,9,8,10] sums = 0 list1.pop(max(list1)) list1.pop(min(list1)) for x in list1: sum += x print(sum / len(list1))
8.有两个列表A和B,使用列表C来获取两个列表中公共的元素
例如: A = [1, ‘a’, 4, 90] B = [‘a’, 8, ‘j’, 1] --> C = [1, ‘a’]
1
2
3
4
5
6
7
8
9A = [1, 'a', 4, 90] B = ['a', 8, 'j', 1] C = [] for x in A: if x in B and x in A: C.append(x) print(C)
9.*有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)
例如: nums = [19, 89, 90, 600, 1] —> 600
1
2
3
4
5nums = [19, 89, 90, 600, 1] #投机取巧 for x in range(len(nums)-1): nums.remove(min(nums)) print(nums)
10.*获取列表中出现次数最多的元素
例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3
1
2
3
4
5
6
7
8
9
10
11
12nums = [1, 2, 3,1,4,2,1,3,7,3,3] max_count = 0 for i in nums: count = nums.count(i) if count > max_count: max_count = count new_num = [] for i in nums: if nums.count(i) == max_count and i not in new_num: new_num.append(i) print(new_num)
2.列表
1.容器型数据类型(序列)
“”"
容器从是否是容器分为:非容器型数据类型的变量和容器型数据类型的变量
非容器型数据类型的变量 - 一个盒子里面只有一个格子,所以同一时间只能保存一个数据。例如:int、float、bool、None
容器型数据类型的变量 - 一个盒子里面有多个格子,每个格子可以保存不一样的数据,所以同一时间就可以保存多个数据。
例如:list、dict、tuple、set、str等
“”"
1
2
3
4scores = [89,70,98,23,90,67,62,78,23,89] print(sum(scores)) print(max(scores),min(scores))
2.什么是列表
“”"
列表是容器型数据类型,将[]作为容器标志,里面多个元素用逗号隔开:[元素1,元素2,元素3,…]
列表是可变的(可变指的是元素的个数、值和顺序可变 - 支持增删改操作);列表有序(支持下标操作)
列表中的元素:任何类型的数据都可以作为列的元素。(没有要求)
元素 - 指的是容器中每一个独立的数据
“”"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#空列表 list1 = [] print(list1) #list2是一个列表,列表中只有一个元素 list2 = [19] list3 = [10,20,30] print(list3) #同一个列表中的元素可以是不同类型的数据据 list4 = [10,'hello',12.8,True,[100,200]] print(list4) #空列表 list1 = [] print(list1) #list2是一个列表,列表中只有一个元素 list2 = [19] list3 = [10,20,30] print(list3) #同一个列表中的元素可以是不同类型的数据据 list4 = [10,'hello',12.8,True,[100,200]] print(list4)
3.获取列表元素
1.获取单个元素
“”"
语法:
列表[下标] - 获取下标对应的元素
说明:
列表 - 保存列表的变量的表达式,;例如:保留列表的变量或者具体的列表数据
[] - 固定写法
下标 - 下标(又叫索引)是有序序列中元素的位置信息
第一种:从前往后从0开始一次增加
第二种:从后往前从-1开始一次减少
注意:下标不能越界
“”"
1
2
3
4
5
6
7
8list1 = [10,20,30,40] #[10,20,30,40][] #list1[] print(list1[0]) #获取list1中下标是0的元素 -> 10 print(list1[2]) #30 print(list1[-1]) #40 #print(list1[4]) #报错:IndexError: list index out of range
2.切片 - 获取部分元素
“”"
语法1:
列表[开始下标:结束下标:步长]
1)从开始下标到结束下标的方向如果和步长对应的方向(步长为正表示从前往后,步长为负表示从后往前)一致就可以获取到数据,否则结果就是空值
2)确定有效范围:开始下标对应的元素可以取到,结束下标对应的元素取不到 -> [开始下标,结束下标)
3)确定切片结果:在有效范围内按照步长绝对值取数据;绝对值为1就一个一个的取,绝对值为2就跳一个取一个
“”"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38heroes = ['亚索','卡沙','EZ','沙皇','男枪','阿狸','猫咪','奶妈'] #开始下标到结束下标的方向如果和步长对应的方向一致,就可以取到数据 print(heroes[0:2:1]) #['亚索', '卡沙'] print(heroes[0:-1:1]) #['亚索', '卡沙', 'EZ', '沙皇', '男枪', '阿狸', '猫咪'] print(heroes[-1:2:-1]) #['奶妈', '猫咪', '阿狸', '男枪', '沙皇'] #开始下标到结束下标的方向如果和步长对应的方向不一致,一定取不到数据 print(heroes[1:4:-1]) #[] print(heroes[5:1:2]) #[] print(heroes[1:5:1]) #['卡沙','EZ','沙皇','男枪'] print(heroes[1:5:2]) #['卡沙','沙皇'] print(heroes[1:5:]) #['卡沙','男枪'] #练习:写出一下表达式的打印结果 heroes = ['亚索','卡沙','EZ','沙皇','男枪','阿狸','猫咪','奶妈'] print(heroes[0:5:2]) #['亚索','EZ','男枪'] print(heroes[1:-2:-1]) #[] print(heroes[2:-2:2]) #['EZ','男枪'] print(heroes[-2:0:-3]) #['沙皇','猫咪'] print(heroes[-1:-4:1]) #[] print(heroes[0:6:3]) #['亚索','沙皇'] #练习2:写切片获取以下指定内容 #['EZ','沙皇','男枪'] print(heroes[2:5:1]) #['亚索','卡沙','EZ','沙皇'] print(heroes[0:4:1]) #['猫咪','阿狸','男枪'] print(heroes[-2:-5:-1]) #['卡沙','沙皇,'阿狸'] print(heroes[1:-2:2]) #['奶妈','阿狸'] print(heroes[-1:-4:-2]) #['卡沙','猫咪'] print(heroes[1:7:5])
“”"
列表[开始下标:结束下标:步长]
语法2:省略步长
列表[开始下标:结束下标] - 步长为1
语法3:省略开始下标
列表[:结束下标:步长]/列表[:结束下标]
语法4:省略结束下标
列表[开始下标:步长] / 列表[开始下标:] - 如果步长为正,从第一个元素开始往后取;如果步长为负,从最后一个元素开始往前取
如果步长为正,从开始下标开始从前往后取完为止;如果步长为负,从开始下标开始从后往前取取完
“”"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23heroes = ['亚索','卡沙','EZ','沙皇','男枪','阿狸','猫咪','奶妈'] print(heroes[1:3]) #['卡沙','EZ'] print(heroes[1:-1]) #['卡沙','EZ','沙皇','男枪','阿狸','猫咪'] print(heroes[3:0]) #[] print(heroes[:3]) #['亚索','卡沙','EZ'] print(heroes[:3:-1]) #['奶妈','猫咪','阿狸','男枪'] print(heroes[:-2:2]) #['亚索','EZ','男枪',] print(heroes[3:]) #['沙皇','男枪','阿狸','猫咪','奶妈'] print(heroes[-2::-2]) #['猫咪', '男枪', 'EZ', '亚索'] print(heroes[::-1]) #['奶妈', '猫咪', '阿狸', '男枪', '沙皇', 'EZ', '卡沙', '亚索'] #练习:推算以下表达式的打印结果 heroes = ['亚索','卡沙','EZ','沙皇','男枪','阿狸','猫咪','奶妈'] print(heroes[2:5]) #['EZ', '沙皇', '男枪'] print(heroes[3::-2]) #['沙皇', '卡沙'] print(heroes[-3::-1]) #['阿狸', '男枪', '沙皇', 'EZ', '卡沙', '亚索'] print(heroes[:-4:2]) #['亚索', 'EZ'] print(heroes[1::3]) #['卡沙', '男枪', '奶妈'] print(heroes[:-2]) #['亚索', '卡沙', 'EZ', '沙皇', '男枪', '阿狸']
3.遍历 - 一个一个的全部取出来
“”"
方法一:直接获取元素
for 变量 in 列表:
循环体
变量一次获取的就是列表中的每个元素
方法二:通过获取每个元素的下标来获取元素
for 变量 in range(列表长度):
循环体
变量依次获取的时候列表中元素的下标
补充:len(列表) - 获取列表的长度
“”"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33nums = [23,8.9,90,89,78.3] for x in nums: print('x:',x) print('----------------------------------------------') for x in range(len(nums)): print(x,nums[x]) print('----------------------------------------------') #-1,-2,-3,-4,-5 for x in range(-1,-len(nums)-1,-1): print(x,nums[x]) # 练习:scores保存所有学生的分数 # 1)统计不及格学生人数 # 2)计算学生平均分 scores = [90, 78, 54, 67, 88, 30, 59] count = 0 sums = 0 for x in scores: sums +=x if x < 60: count+=1 print(count,'平均分',sums/len(scores)) # 练习2:已知列表nums,统计nums中整数的个数 nums = [90, 1.23, 'abc', 12, 0.12] count = 0 for x in nums: if type(x) == int: count+=1 print(count)
4.增删改、
增 - 添加元素
“”"
1)列表.append(元素) - 将元素添加到列表的最后
2)列表.insert(下标,元素) - 将元素插入到指定下标前
“”"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38#1)append list1 = [10,20] print(list1) list1.append(100) print(list1) #[10,20,100] #append实例 # 练习:scores保存多个学生的分数,提取所有分数中不及格的分数 scores = [90, 78, 65, 45, 55, 89, 30, 99] #[45,55,30] new_scores = [] for x in scores: if x < 60: new_scores.append(x) print(new_scores) #2)insert实例 nums = [10,20,30,40] print(nums) #[10,20,30,40] nums.insert(1,100) print(nums) #[10,100,20,30,40] # 练习:已知一个列表,列表中的元素已经从小到大排好序,插入输入的数据,要求插入后不影响顺序 nums = [12, 23, 56, 78, 99, 120] # 80 -> [12, 23, 56, 78, 80, 99, 120] # 2 -> [2, 12, 23, 56, 78, 99, 120] value = 80 for x in range(len(nums)): if nums[x] >value: nums.insert(x,value) break else: nums.append(value) print(nums)
2.删 - 删除元素
“”"
语法1:del 列表[下标] - 删除指定下标对应的元素
“”"
tvs = [‘海贼王’, ‘七龙珠’, ‘琅琊榜’, ‘甄嬛传’, ‘名侦探柯南’, ‘还珠格格’]
print(tvs) #[‘海贼王’, ‘七龙珠’, ‘琅琊榜’, ‘甄嬛传’, ‘名侦探柯南’, ‘还珠格格’]
del tvs[1]
print(tvs) #[‘海贼王’, ‘琅琊榜’, ‘甄嬛传’, ‘名侦探柯南’, ‘还珠格格’]
“”"
语法2:列表.remove(元素) - 删除指定元素
“”"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25tvs = ['海贼王', '七龙珠','甄嬛传', '琅琊榜', '甄嬛传', '名侦探柯南', '还珠格格'] print(tvs) tvs.remove('还珠格格') print(tvs) #tvs.remove('三国') #ValueError: list.remove(x): x not in list tvs.remove('甄嬛传') #如果有重复的删除第一个 print(tvs) """ 语法3:列表.pop() - 去除最后一个元素 列表.pop(下标) - 取出指定下标对应的元素,并且返回 """ tvs = ['海贼王', '七龙珠','甄嬛传', '琅琊榜', '甄嬛传', '名侦探柯南', '还珠格格'] tvs.pop() print(tvs) #['海贼王', '七龙珠', '甄嬛传', '琅琊榜', '甄嬛传', '名侦探柯南'] tvs.pop(1) print(tvs) #['海贼王', '甄嬛传', '琅琊榜', '甄嬛传', '名侦探柯南'] result = tvs.pop() print(tvs,result) #['海贼王', '甄嬛传', '琅琊榜', '甄嬛传'] 名侦探柯南
3.改
列表[下标] = 值 - 将列表中指定下标对应的元素改成指定的值
1
2
3
4
5
6
7
8
9
10
11movies = ['肖申克的救赎','海上钢琴师','长津湖','罗小黑战记'] movies[0] = 'V字仇杀队' print(movies) #['V字仇杀队', '海上钢琴师', '长津湖', '罗小黑战记'] #练习:将scores中所有不及格的分数改成0分 -> [90,0,89,0,88] scores = [90,34,89,55,88] for x in range(len(scores)): if scores[x] < 60: scores[x] = 0 print(scores)
in操作
1.in
元素 in 列表 - 判断列表中是否存在指定的元素
元素 not in 列表 - 判断列表中是否不存在指定元素
1
2
3
4print(10 in [10,20,30]) #True print([10,20] in [10,20,30]) #False print([10,20] in [[10,20],30]) #True
最后
以上就是悦耳鸵鸟最近收集整理的关于day6-列表作业day6.列表基础的全部内容,更多相关day6-列表作业day6内容请搜索靠谱客的其他文章。
发表评论 取消回复