攻克python3-列表与元组(第三篇)
列表
1.列表的创建
names=["wurui","penghaokun","libowen","wurui","zhenshichao"]
2.列表的查看
print("names=",names) print("names[0]=",names[0]) #查询第一个元素 #切片 print("names[-1]=",names[-1]) #查询最后一个元素 print("names[-2]=",names[-2]) #查询倒数第二个元素 print("names[0:3]=",names[0:3]) #查询前三个元素 print("names[:3]=",names[:3]) #从列表头开始切片查询,0可以省略 print("names[-3:-1]",names[-3:-1]) #从倒数第三个开始到倒数第一个元素 print("names[-3:]=",names[-3:]) #查询到列表尾部,-1可以省略 #步长切片 print("names[0:-1:2]=",names[0:-1:2]) #从头到尾隔一个输出一个 print("names[::2]=",names[::2]) #0与-1 可以省略 !!!问题省略之后不一样 print("wurui"in names) #判断"wurui"是否在列表
3.列表的增加
print("增加前的列表:",names) #names.append("zhouxuqiang") #append函数添加到列表尾部,不能批量添加 names.insert(1,"zhouxuqiang") #insret函数添加到指定位置,不能批量添加 print("增加后的列表:",names)
4.列表的修改
print("修改前的列表:",names) names[3]="guochangcheng" #通过覆盖直接赋值修改 print("修改后的列表:",names)
5.列表的删除
print("删除前的列表:",names) #del names[2] #names.remove("zhenshichao") #names.pop() names.pop(3) #pop函数不带参数,直接删除尾部元素 print("删除后的列表:",names)
6.查询元素角标
print("penghaokun的角标:",names.index("penghaokun"))
7.列表的反转与排序
#反转 print("元素的反转:") print("反转前的列表:",names) names.reverse() print("反转后的列表:",names) #排序 print("元素的排序:") print("排序前的列表:",names) names.sort() #排列的顺序按照ascll码表从小到大 print("排序后的列表:",names)
8.元素在列表中出现的次数
print("wurui出现的次数:",names.count("wurui"))
9.列表的拼接
names1=[1,2,3] print("被拼接的列表;",names) print("拼接的列表:",names1) names.extend(names1) #拼接后names1依然存在 print("拼接后的列表:",names)
10.列表元素的清空与列表的删除
print("列表清空前:",names) names1.clear() print("列表清空后:",names1) del names1 #列表的删除
11.列表的复制
import copy #浅复制 print("列表的浅复制:") names1=["wurui","penghaokun",["guochangcheng","zhouxuqiang"],"libowen","wurui","zhenshichao"] #names2=copy.copy(names1) #names2=names1[:] #完全切片 #names2=list(names1) names2=names1.copy() #浅copy的四种方式 print("被复制的列表:",names1) print("复制的列表:",names2) names1[1]="彭浩堃" names1[2][0]="郭长城" print("修改后被复制的列表:",names1) print("修改后复制的列表:",names2) #copy函数是一个浅复制,只复制第一层列表,在一级列表中把二级的地址也一起复制过去了,一旦这个地址里面的值发生改变,复制的列表与被复制的列表都会发生改变 #深复制 print("列表的深复制:") names1=["wurui","penghaokun",["guochangcheng","zhouxuqiang"],"libowen","wurui","zhenshichao"] names2=copy.deepcopy(names1) print("被复制的列表:",names1) print("复制的列表:",names2) names1[1]="彭浩堃" names1[2][0]="郭长城" print("修改后被复制的列表:",names1) print("修改后复制的列表:",names2) #现在完完全全复制了,两个列表互不相干
12.列表的循环输出
for i in names: print(i)
元组
只可以查看和删除,其余操作都不行
names=("wurui","penghoakun") print(names) print("wuiru出现的次数:",names.count("wurui")) print("penghaokun的角标",names.index("penghoakun")) del names