Day6-列表
1.完整的循环
-
1.语法
for 变量 in 序列:
循环体
else:
代码段
while 条件:
循环体
else:
代码段
-
说明
else的存在并不影响原来循环的执行,如果循环自然死亡,循环结束后执行else;如果循环是遇到break结束,那么else后面的代码就不会执行
2.认识列表
-
1.什么是列表
-
列表是python中同期型数据类型,类型名(list)
-
将[]作为类型的标志,里面多个数据用逗号隔开[数据1,数据2,数据…]
-
列表的特点
-
可变性—个数可变、值可变、顺序可变,支持增删改查操作
-
有序性----列表是有序的,支持下标操作
-
任何类型的数据都可以是列表的元素,同一个列表中的元素类型可以不相同
-
len(列表)-------------获取类表中元素的个数
list2=['小明',1,False,0.3] len(list2)
-
-
-
2.空列表
list1=[] print(type(list1),len(list1))
3.查操作
-
1.查列表
-
a.语法
列表[下标]------------获取下标对应的元素
-
b.说明
列表----任何结果是列表的表达式,一般是保存列表的变量或者是具体某一个列表
[]---------固定写法
下标-----下标又叫索引,下标是列表中元素的位置信息;列表中的每个元素都有两个下标值,分别是:从前往后数从0开始不断增加的下标值,从后往前从-1开始不断减小的下标值
moives=['小森林','复联3','肖申克的救赎','蜘蛛侠','忍者神龟','泰坦尼克号','阿凡达'] print(moives[-5]) print(moives[-1])
-
-
2.遍历------一个一个的将列表中的元素全部取一遍
-
语法
方法1:for 变量 in 列表:
循环体(列表[下标])
for x in moives: print(x)
方法2:通过遍历下标来遍历列表
for 变量 in rang(列表):
循环体(列表[下标])
for x in range(len(moives)) : print(x,moives[x])
x=0
while x<len(列表):
循环体(列表[下标])
x+=1
x=0 while x<len(moives): print(x,moives[x]) x+=1
方法2:同时获取下标和元素
for 下标、变量 in enumerate(列表):
循环体
for a,b in enumerate(moives): print(a,b)
-
-
3.切片----------获取部分元素
-
1.语法
列表[开始下标:结束下标:步长]
开始下标:结束下标-----确定切片有限范围(PS:开始下标取得到,结束下标取不到)
步长------------------------确定获取方式 a.正负决定从前往后还是从后往前
b.绝对值大小决定是一个一个取还是跳着取
-
2.如何看切片结果
第一步:看确定结果是否为空(从开始下标到结束下标对应的方向和步长对应的方向是否一致,如果不一致,结果直接为[])
第二步:确定有限范围,开始下标取得到,结束下标取不到
第三步:根据步长在有限范围内获取元素
绝对值为1:一个一个的取
绝对值为2:取一个跳一个再取
绝对值为3:取一个跳二个再取
-
3.通过目标来写切片
第一步:确定开始下标(将目标数据中第一个元素对应的下标,作为开始下标)
第二步:确定步长(根据获取的方向确定正负,根据取的时候跳的方式确定绝对值)
第三步:确定结束下标(如果步长为正,结束下标是取到的最后一个元素后面的那个元素的下标,如果为负,则为前一个)
games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '阴阳师', '刀塔', '原神', '绝地求生'] print(games[1:-3:-2]) #[] print(games[-4:-1:-1]) #[] print(games[-6:0:2]) #[] print(games[-7:-2:3]) #'开心消消乐','阴阳师' print(games[2:8:3]) #'开心消消乐','阴阳师' print(games[3:-1:-2]) #[]
-
4.切片的省略语法
1)省略步长:列表[开始下标:结束下标] -------- 相当于步长为1
2)省略开始下标:列表[:结束下标:步长]--------表示从头开始(头可能是第一个也可能是最后一个,看步长正负)
3)省略结束下标:列表[开始下标::步长]---------从开始的位置一直取完,看步长正负
4)省略步长和开始 列表[开始下标:] --------- 步长为正一,从前往后挨个取到最后
5)省略步长和结束 列表[:结束下标]--------- 步长为正一,从前往后挨个取到最后
6)省略开始和结束 列表[::]--------------------步长为正一,从前往后挨个取到最后
-
4.列表的增、删、改
-
1.增------------在列表中添加元素
-
1)列表.append(元素)------------在列表最后添加元素
list1[10,20] list1.append(100) print(list1) # 案例:获取score中所有不及格的分数,以列表形式反应 scores = [78, 19, 80, 92, 99, 45, 67, 87, 49] new_sores=[] for x in scores: if x<60: new_sores.append(x)
-
2)列表.insert(下标,元素)---------将指定元素放到指定下标下
list1[10,20] list1.insert(0,100) print(list1)
-
-
2.删
-
1)del 列表[下标]---------删除定制下标对应的元素(下标不能越界)
scores = [78, 19, 80, 92, 99, 45, 67, 87, 49] del scores[-1] print(scores)
-
2)列表.remove(元素)-------删除指定元素,若对应的元素在列表中有多个,值删除最前面的一个
scores.remove(87) print(scores)
-
列表.pop(下标)--------------取出列表中指定下标对应的元素,元素只是从序列中移除,并没有被删除。常用法x=列表.pop(下标)
x=scores.pop(0) print(x)
-
列表.pop()----------------------取出最后一个元素
-
-
3.改-------------修改某个元素的值
列表[下标]=值--------将指定下标对应的元素修改成指定的元素
scores[0]=11 print(scores)