概述
day6.列表基础
1.作业
1.已知一个数字列表,求列表中心元素。
list1 = [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.已知一个数字列表,求所有元素和。
list1 = [12,33,88,96,78]
sum = 0
for x in list1:
sum += x
print(sum)
3.已知一个数字列表,输出所有奇数下标元素。
list1 = [10,22,33,44,55,66,77]
print(1::2)
4.已知一个数字列表,输出所有元素中,值为奇数的元素。
list1=[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]
nums = [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 = [‘张三’, ‘李四’, ‘大黄’]
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
new_name = []
for x in names:
if x not in new_name:
new_name.append(x)
print(new_name)
7.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
list1=[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’]
A = [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
nums = [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
nums = [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等
“”"
scores = [89,70,98,23,90,67,62,78,23,89]
print(sum(scores))
print(max(scores),min(scores))
2.什么是列表
“”"
列表是容器型数据类型,将[]作为容器标志,里面多个元素用逗号隔开:[元素1,元素2,元素3,…]
列表是可变的(可变指的是元素的个数、值和顺序可变 - 支持增删改操作);列表有序(支持下标操作)
列表中的元素:任何类型的数据都可以作为列的元素。(没有要求)
元素 - 指的是容器中每一个独立的数据
“”"
#空列表
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开始一次减少
注意:下标不能越界
“”"
list1 = [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就跳一个取一个
“”"
heroes = ['亚索','卡沙','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:省略结束下标
列表[开始下标:步长] / 列表[开始下标:] - 如果步长为正,从第一个元素开始往后取;如果步长为负,从最后一个元素开始往前取
如果步长为正,从开始下标开始从前往后取完为止;如果步长为负,从开始下标开始从后往前取取完
“”"
heroes = ['亚索','卡沙','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(列表) - 获取列表的长度
“”"
nums = [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)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(元素) - 删除指定元素
“”"
tvs = ['海贼王', '七龙珠','甄嬛传', '琅琊榜', '甄嬛传', '名侦探柯南', '还珠格格']
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.改
列表[下标] = 值 - 将列表中指定下标对应的元素改成指定的值
movies = ['肖申克的救赎','海上钢琴师','长津湖','罗小黑战记']
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 列表 - 判断列表中是否不存在指定元素
print(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.列表基础所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复