2022-4-18 python基础学习
列表
定义一个学生的分数
score =89
定义一个班的学生的分数
score1=98
score2=87
score3=69
…
scoren=68
scores[]=score[98,87,69,…,scoren]
求一个班的学生的平均分:
(score1+score2+score3+…+scoren)/n
1什么是列表(list)
1.list 是容器型数据类型(可以同时保存多个数据类型)
2.将[]作为容器的标志,里面有多个元素(一个容器中每个独立的数据就是元素),用逗号隔开:
[元素1,元素2,元素3,…]
3.列表是可变的(可变指的是元素的个数,元素的值和元素的顺序可变) - 列表支持增删改
4.列表是有序的 - 列表支持下标操作
5.列表的元素:任何类型的数据都可以作为列表的元素
空列表:list1=[]
2 列表中元素的类型
-
list1 =[29,34,56,67] - 相同类型数据
-
list2= [29,2,3,‘abc’,True,[10,2],{‘a’:10}] - 不同数据类型
-
一个列表可以作为另外一个列表的元素
列表是有序的,集合是无序的
print([10,20,30]==[30,20,30]) #Falese,列表是有序的
print({
10,20,30})=={
30,20,10} #True,集合是无序的
3 列表的增删改查
列表的查:获取元素
-
查单个元素 - 获取指定列表中指定下标对应的元素
语法:列表[下标]
说明:1)列表 - 可以是具体的某个列表,也可以是保存列表的变量
2)[] - 固定写法
3)下标 - 整数,下标又叫索引,是元素在有序序列中的位置信息
python中元素对应的下标有两种:1从前往后从0开始不断增加 2从后往前从-1开始不断减少
注:下标不能越界
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n6SOWUFC-1650372862523)(C:\Users\86567\AppData\Roaming\Typora\typora-user-images\image-20220418102144093.png)]
games=[‘英雄联盟’]
games=['英雄联盟','王者荣耀','开心消消乐','炉石传说','部落冲突','原神','绝地求生'] print(games[1]) print(games[100]) #索引超过序列索引 print(games[1:-1:2]) #不为空 print(games[1:-2:-2]) #为空
-
获取部分元素 - 切片(获取一个新列表)
切片的完整语法
list[开始下标:结束下标:步长]
步长决定方向,决定怎么取值
切片的过程:
第一步:看步长对应的方向和开始下标到结束下标对应的方向是否一致,如果不一致,切片的结果一定为空值
第二部:确定有效范围:从开始下标对应的元素到结束下标对应的元素,结束下标对应的元素取不到
第三部:获取元素:通过步长获取元素:步长的正负确定获取方向,步长绝对值确定获取的时候是否跳着取,步长绝对值为1,表示一个一个取;绝对值为2,表示取一个跳一个,索引加步长
怎么写切片
第一步:确定开始下标:看结果中第一个元素在原列表中的下标,
第二步:确定方向和步长
第三步:确定结束下标
省略:1不写步长,默认步长为+1: 列表[开始下标:结束下标],省略步长时,步长为1
2省略开始下标:列表[:结束下标:步长]
3省略结束下标:列表[开始下标::步长]、列表[开始下标:]
如果步长为正,从开始下标开始往后取,一直取到最后一个元素;如果步长为负,从开始下标开始往前取,取到第一个元素为止
print(movies[-2::-3]) print(movies[3:6]) print(movies[:-3]) print(movies[:4:2]) print(movies[-4::2]) print(movies[1::4]) print(movies[::3])
遍历 - 将列表中的元素一个一个的全部取完
方法1 :直接获取元素
for 变量 in 列表:
循环体(变量依次取到的就是列表中的元素)
方法2 - 通过遍历下标来遍历元素
for 变量 in range(len(列表)):
循环体(变量取到的每个元素的下标,列表[下标]就可以取得元素
len(列表) - 计算列表的长度
方法3 - 同时获取下标和元素
for 变量1,变量2 in enumerate(列表):
循环体(变量1依次获取到的是每个元素的下标,变量2依次获取到的是每个元素)
2 增
1)列表.append(元素) 在列表的最后添加指定元素
nums=[10,20]
print(nums)
nums.append(100)(只是一个方法)(方法不产生结果)
print(nums)
2)insert()
nums=[10,20,30]
print(nums)
nums.insert(下标,添加的元素) - 谁的前面下标就写谁
2删除
第一种
del 列表[下标] - 删除列表中指定下标对应的元素
列表.remove(元素) - 删除列表中指定元素(如果列表中有多个相同的元素,被删除时只删除第一个元素,如果删除了列表中不存在的元素,会报错)
#方法一 scores=[98,79,45,55,72,64,82,90,23,45,59] #java中数据都是指针数据 for x in scores[:]: if x<60: scores.remove(x) print(scores) #方法二 scores=[98,79,45,55,72,64,82,90,23,45,59] for x in range(len(scores)-1,-1,-1): if scores[x]<60: del scores[x] print(scores) #方法三: scores=[98,