1.列表切片
通过索引查找列表元素
#列表切片 前闭后开 由两个冒号三个数字组成
a = [1,3,5,7,9,0,2,4,6,8,10]
print(a[::2]) #步长为2 结果[1,5,9,2,6,10]
print(a[3:]) #从索引为3开始 结果[7,9,0,2,4,6,8,10]
print(a[:2]) #从默认索引为0开始——索引为2结束 结果[1.3]
print(a[1:5]) #从索引为1开始——索引为5结束 结果[3,5,7,9]
print(a[2:9:2]) #从索引为2开始——索引为9结束且步长为2 结果[5,9,2,6]
print(a[1::2]) #从索引为1开始选择索引为奇数的数 结果[3,7,0,4,8]
print(a[::2]) #从索引为0开始,选择索引为偶数的数 结果[1,5,9,2,6,10]
借助列表切片进行复制和翻转
a = [1,3,5,7,9,0,2,4,6,8,10]
b = a[:] #复制a
c = a[::-1] #翻转a
print(b) #结果[1,3,5,7,9,0,2,4,6,8,10]
print(c) #结果[10,8,6,4,2,0,9,7,5,3,1]
print(a == b) #结果 True 判断值是否相同
print(id(a)) #结果 1708408877448
print(id(b)) #结果 1708430100680
print(a is b) #结果 False 判断id是否相同
- 复制之后a和b都是列表,包含相同的值,但是id不同。因此,a和b不是同一个列表
2.列表元素的动态添加
方法:append、extend、insert 、+
2.1 append方法
append方法:只将元素添加到原始列表末尾,不对传入的参数做任何处理
a = [1,2,3]
a.append(4)
print(a) #结果 [1,2,3,4]
2.2 extend方法
extend方法:将b中元素按原始顺序添加到a中
#%%
a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(a) #结果 [1, 2, 3, 4, 5, 6]
2.3 insert方法
insert方法:将元素4插入索引为1的位置,a中后面元素后移
#%%
a = [1,2,3]
a.insert(1,4)
print(a) #结果 [1, 4, 2, 3]
2.4 +方法
+方法:和extend方法相同
#%%
a = [1,2,3]
b = [5,8,0]
c = a+b
print(c) #结果 [1, 2, 3, 5, 8, 0]
3.列表元素的动态删除
方法:clear、pop、remove
3.1 clear方法
clear方法:将列表元素清空
[]方法:和clear方法相同
a = [1,2,3]
b = [4,5,6]
a.clear() #clear方法:将列表元素清空
b = [] #[]方法:和clear方法相同
print(a) #结果:[]
print(b) #结果:[]
3.2 pop方法
pop方法:删除列表尾部元素,并返回该值
a = [1,2,3]
pop_value = a.pop() #pop方法:删除列表尾部元素,并返回该值
print(a) #结果:[1,2]
print(pop_value) #结果:3
3.3 remove方法
remove方法:针对不知道索引值的删除,且重复的元素,第一次删除只会删除第一个出现的元素
a = [0,1,2,3,1,2]
a.remove(2) #remove方法:针对不知道索引值的删除
print(a) #删除第一次次结果:[0, 1, 3, 1, 2]
a.remove(2)
print(a) #删除第一次次结果:[0, 1, 3, 1]
4.列表元素的查找、统计和排序
4.1 index
index:已知元素未知索引进行查找,结果:返回第一次出现的元素对应索引
a = [0,1,2,3,1,2]
print(a.index(2)) #结果:2
4.2 conut
conut:统计元素出现的次数
a = [0,1,2,3,1,2]
print(a.count(1)) #conut:统计元素出现的次数,结果:2
4.3 sort
sort:对列表进行排序
a = [0,1,2,3,1,2]
a.sort() #sort:对列表进行排序,
print(a) #结果:[0, 1, 1, 2, 2, 3]
sort(reverse=True):对列表进行逆排序
a = [0,1,2,3,1,2]
a.sort(reverse=True) #sort(reverse=True):对列表进行逆排序
print(a) #结果:[3, 2, 2, 1, 1, 0]
5.列表元素的复制和翻转
5.1 复制
copy:将a的内容复制给b
切片复制:和copy方法等价
a = [1,2,5,9]
b = a.copy() #copy:将a的内容复制给b
c = a[:] #切片复制:和copy方法等价
print(b) #结果:[1,2,5,9]
print(c) #结果:[1,2,5,9]
- a,b,c三个列表内容相同,但不是同一个列表
5.2 翻转
翻转方法:切片操作进行翻转、列表内置reserve
a = [1,2,5,9]
b =a[::-1] #将a的内容翻转赋值给b,产生新列表
a.reverse() #翻转a,不产生新列表
print(b) #结果:[9, 5, 2, 1]
print(a) #结果:[9, 5, 2, 1]
print(b == a) #比较a和b的数值,结果:True
- 切片操作进行翻转,会产生新列表,而reserve操作不会产生新列表