- 一、列表的增、删、改
- 二、列表的下标和切片
- 三、循环(遍历)
列表:是能够存储各种数据的容器。列表是可变的。列表是有序的(下标)。
列表的容器符号[],list
-
创建一个空列表
list = [ ]
-
可变 - 增、删、改
-
增加元素:
append():追加
insert():插入
list1.append('Python') list1.append('Java') -
下标:python中下标
(正向下标:从0开始 , 负向:从-1开始下标)
list1.insert(1, 'HTML') list1.insert(1, 0) print(list1)
修改:通过下标改元素
语法:列表[下标] = 新的值list1[1] = 'C' print(list1)
-
删除元素
del:语法:del 列表[下标]
remove:移除某个元素(彻底删除)
pop:移除某个元素(删除文件后知道删除的是谁)
clear:将列表清空
del list1[1] print(list1) print(list1.remove('Java')) print(list1) print(list1.pop(0)) print(list1) list1.clear() print(list1) -
下标:每个元素在列表中的位置。
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟']
正向下标,从0开始
负向下标, 从-1开始
下标不能越界
#海王 list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟'] print(list1[2], list1[-2]) # IndexError: list index out of range # list1[100] # list1[-100]
切片:左闭右开区间,从原来的容器中提取元素组成新的容器.切片可以越界。
变量[M:N:step]
M:起始范围(不写M,默认从头开始取),N结束范围(不写,默认取到尾),step步长(step=1,可以不写);
list1[1:3] 左闭右开区间[1:3),取1-2
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟'] print(list1[1:3]) print(list1[1:4:2]) print(list1[:4:2]) print(list1[::2]) print(list1[:])
-
起始范围和结束范围不写的时候,冒号必须存在;步长不写时,冒号不用写。
-
步长控制获取的元素,每间隔步长-1个元素获取一个元素(获取的当前元素+步长=下一个要获取的元素)
-
M和N必须同符号:step>0,M
N。 -
正向下标和负向下标可以组合使用
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟'] # 0 1 2 3 # -1 -2 -3 -4 print(list1[::-1]) print(list1[4:1:-1])#范围是[4,1)即4,3,2,由于没有是,输出为3,2 ['复仇者联盟', '海王'] print(list1[0:-1])
movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山'] # 练习: # a.获取['阿甘正传'、'霸王别姬'、'环太平洋'] print(movies[:5:2]) print(movies[:-1:2]) print(movies[::2]) # b.获取['肖申克的救赎'、'环太平洋'] print(movies[1:5:3]) print(movies[1:-1:3]) print(movies[1::3]) # c.获取['环太平洋'、'霸王别姬'、'阿甘正传'] print(movies[-2::-2]) # d.获取['猿人泰山'、'阿甘正传'] print(movies[::-5]) # e.获取['霸王别姬'] print(movies[2:3]) a = [] a.append(movies[2]) print(a) b = [movies[2]] print(b)三、循环(遍历)
循环(遍历)
1.直接遍历
movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山'] for i in movies: print(i)
2.间接遍历
len()能够查看容器的长度
print(len(movies))
for i in range(len(movies)):
print(movies[i])
3.enumerate():将列表转换为一个可迭代对象
print(enumerate(movies)) for i in enumerate(movies): print(i) ''' (0, '阿甘正传') (1, '肖申克的救赎') (2, '霸王别姬') (3, '三傻大闹宝莱坞') (4, '环太平洋') (5, '猿人泰山') '''
练习:将下方列表中的元素从小到大排序。
list1 = [23, 56, 10, 55, 76, 100, 30]
# [23, 56, 10, 55, 76, 100, 30]
# [23, 10, 55, 56, 76, 30, 100]
# [10, 23, 55, 56, 30, 76, 100]
# 每趟排序,排序次数 + 1 = 本趟排序的元素个数
# 外层循环控制趟数
for i in range(1, len(list1)):
print(f'这是第{i}趟排序')
print('每趟排序开始前:', list1)
for j in range(0, len(list1) - i):
print('每次排序的两个元素', list1[j], list1[j + 1])
if list1[j] > list1[j + 1]:
list1[j], list1[j + 1] = list1[j + 1], list1[j]
# 打印每一趟排序的结果
print(list1)
print('每次排序的两个元素', list1[j], list1[j + 1])
if list1[j] > list1[j + 1]:
list1[j], list1[j + 1] = list1[j + 1], list1[j]
# 打印每一趟排序的结果
print(list1)



