列表是能够存储各种数据容器,其次有存储数据的功能。列表是可变的。列表是有序的(下标)。
列表的容器符号[ ],list
list1 = []2.可变-增、删、改。
- 增加元素:
append():追加
insert():插入
list1.append('Python')
list1.append('Java')
# 下标:Python中下标
# 正向下标:从0开始
# 负向下标:从-1开始
list1.insert(1, 'Html')
print(list1)
修改:通过下标改元素
语法:列表[下标] = 新的值
list1[1] = 'C' print(list1)
- 删除元素
del:语法 —— del 列表[下标]
remove:移除某个元素(彻底删除)
pop:移除某个元素(删除文件后知道删除的是谁)
clear:将列表清空
del list1[1]
print(list1)
list1.remove('Java')
print(list1)
list1.pop(0)
print(list1)
list1.clear()
print(list1)
02_下标和切片
1.下标
每个元素在列表的位置。
正向下标:从0开始
负向下标:从-1开始
list1 = ['蜘蛛侠', '环太平洋', '海蒂', '复仇者联盟'] # 0 1 2 3 # -4 -3 -2 -1 print(list1[2], list1[-2]) # 运行结果 ''' 海蒂 海蒂 '''
注:下标不能越界
list1[100]
list1[-100]
报错:IndexError: list index out of range
切片:左闭右开区间,从原来的容器中提取元素组成新的容器
变量[M:N:step]
M是其是范围(不写M,默认从头开始取),N是结束范围(如果不写N,默认取到尾),step是步长(默认等于1);
list1 = ['蜘蛛侠', '环太平洋', '海蒂', '复仇者联盟'] print(list1[2:4]) # 4是取不到的 print(list1[1:4:2]) print(list1[:4:2]) print(list1[::2]) print(list1[:]) # 运行结果 ''' ['海蒂', '复仇者联盟'] ['环太平洋', '复仇者联盟'] ['蜘蛛侠', '海蒂'] ['蜘蛛侠', '海蒂'] ['蜘蛛侠', '环太平洋', '海蒂', '复仇者联盟'] '''
1.起始范围和结束范围不写的时候,冒号必须存在,步长无需考虑
2.步长控制获取的元素,每间隔(步长-1)个元素获取一个元素(获取的当前元素 + 步长 = 下一个要获取的元素)
list1 = ['蜘蛛侠', '环太平洋', '海蒂', '复仇者联盟'] print(list1[::-1]) print(list1[:1:-1]) # 运行结果 ''' ['复仇者联盟', '海蒂', '环太平洋', '蜘蛛侠'] ['复仇者联盟', '海蒂'] '''
3.M和N必须同符号:step>0时,M
list1 = ['蜘蛛侠', '环太平洋', '海蒂', '复仇者联盟'] print(list1[0:-1]) # 运行结果 ''' ['蜘蛛侠', '环太平洋', '海蒂'] '''
movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山'] # 练习: # a.获取['阿甘正传'、'霸王别姬'、'环太平洋'] print(movies[0:5:2]) print(movies[0:-1: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]) # 获取['霸王别姬'] print(movies[2:3]) ''' 结果 ['阿甘正传', '霸王别姬', '环太平洋'] ['阿甘正传', '霸王别姬', '环太平洋'] ['肖申克的救赎', '环太平洋'] ['肖申克的救赎', '环太平洋'] ['肖申克的救赎', '环太平洋'] ['环太平洋', '霸王别姬', '阿甘正传'] ['猿人泰山', '阿甘正传'] ['霸王别姬'] '''03_循环 1.直接遍历
movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山']
for i in movies:
print(i)
# 运行结果
'''
阿甘正传
肖申克的救赎
霸王别姬
三傻大闹宝莱坞
环太平洋
猿人泰山
'''
2.间接遍历
len()能够查看容器的长度
movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山']
print(len(movies))
for i in range(len(movies)):
print(movies[i])
# 运行结果
'''
6
阿甘正传
肖申克的救赎
霸王别姬
三傻大闹宝莱坞
环太平洋
猿人泰山
'''
3.enumerate()将列表转换为一个可迭代的对象
movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山']
print(enumerate(movies))
for i in enumerate(movies):
print(i)
# 运行结果
'''
(0, '阿甘正传')
(1, '肖申克的救赎')
(2, '霸王别姬')
(3, '三傻大闹宝莱坞')
(4, '环太平洋')
(5, '猿人泰山')
'''
练习:将下方元素从小到大进行排序
[10, 23, 55, 56, 30, 76, 100]
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)
# 运行结果
'''
这是第1趟排序
每趟排序开始前: [23, 56, 10, 55, 76, 100, 30]
每次排序的两个元素 23 56
[23, 56, 10, 55, 76, 100, 30]
每次排序的两个元素 56 10
[23, 10, 56, 55, 76, 100, 30]
每次排序的两个元素 56 55
[23, 10, 55, 56, 76, 100, 30]
每次排序的两个元素 56 76
[23, 10, 55, 56, 76, 100, 30]
每次排序的两个元素 76 100
[23, 10, 55, 56, 76, 100, 30]
每次排序的两个元素 100 30
[23, 10, 55, 56, 76, 30, 100]
这是第2趟排序
每趟排序开始前: [23, 10, 55, 56, 76, 30, 100]
每次排序的两个元素 23 10
[10, 23, 55, 56, 76, 30, 100]
每次排序的两个元素 23 55
[10, 23, 55, 56, 76, 30, 100]
每次排序的两个元素 55 56
[10, 23, 55, 56, 76, 30, 100]
每次排序的两个元素 56 76
[10, 23, 55, 56, 76, 30, 100]
每次排序的两个元素 76 30
[10, 23, 55, 56, 30, 76, 100]
这是第3趟排序
每趟排序开始前: [10, 23, 55, 56, 30, 76, 100]
每次排序的两个元素 10 23
[10, 23, 55, 56, 30, 76, 100]
每次排序的两个元素 23 55
[10, 23, 55, 56, 30, 76, 100]
每次排序的两个元素 55 56
[10, 23, 55, 56, 30, 76, 100]
每次排序的两个元素 56 30
[10, 23, 55, 30, 56, 76, 100]
这是第4趟排序
每趟排序开始前: [10, 23, 55, 30, 56, 76, 100]
每次排序的两个元素 10 23
[10, 23, 55, 30, 56, 76, 100]
每次排序的两个元素 23 55
[10, 23, 55, 30, 56, 76, 100]
每次排序的两个元素 55 30
[10, 23, 30, 55, 56, 76, 100]
这是第5趟排序
每趟排序开始前: [10, 23, 30, 55, 56, 76, 100]
每次排序的两个元素 10 23
[10, 23, 30, 55, 56, 76, 100]
每次排序的两个元素 23 30
[10, 23, 30, 55, 56, 76, 100]
这是第6趟排序
每趟排序开始前: [10, 23, 30, 55, 56, 76, 100]
每次排序的两个元素 10 23
[10, 23, 30, 55, 56, 76, 100]
'''
Day4 over!



