序列:分为可变序列(如列表)与不可变序列(如元组,字符串)
4.列表:
4.1 列表基本操作:
list=[1,2,3,4,5,6]
##查
print(list[1]) #输出2
print(len(list)-1) #输出5
print(list[-1]) #输出6
print(list[3:5]) #输出4 5
print(list[3:]) #输出4 5 6
print(list[:3]) #输出1 2 3
print(list[:]) #输出全部
print(list[0:5:2]) #输出1 3 5
print(list[::-2]) #输出6 4 2
print(list.count(1)) #输出元素1的个数
print(list.index(1)) #查询元素1在哪个位置
print(list.index(1,3,5)) #从4到6这三个位置查找1
##解包
a,b,c,d,e,f=tuples
print(a,b,c,d,e,f) # 1,2,3,4,5,6
##增
list.append(7) #在末尾添加7
list[len(list):]=[8,9,10] #在末尾添加8 9 10
list.insert(len(list),11) #在末尾添加11
list.insert(0,-1) #在第0位添加-1
y =x.copy() #浅拷贝
##改
list[3:] =1 #将第4位及以后的数字都替换为1
list[list.index(1)] =2 #把列表里面的第一个数字1改成2
list.sort() #从小到大排序
list.reverse() #全部反转(达成从大到小排序)
##删
list.remove(7) #把数字7去除
list.pop(2) #把第三位去除
list.clear() #删除全部
4.2 利用列表生成二维数组:
#列表的嵌套
matrix=[[1,2,3], [4,5,6],[7,8,9]] #二维列表
#遍历输出:使用嵌套循环
for i in matrix:
for j in i:
print(j,end=' ') #end代表不换行
print() #每遍历3个就换一行
#查询其中某一个元素:
print(matrix[1][1]) #输出第二行第二个的元素
4.3 浅拷贝与深拷贝
import copy
x1=[[1,2,3],[4,5,6]]
x2=[[1,2,3],[4,5,6]]
##浅拷贝:拷贝的是引用
y1=copy.copy(x1) #利用copy模块中的浅拷贝方法
x1[0][0] =2
print(x1) #[[2, 2, 3], [4, 5, 6]]
print(y1) #[[2, 2, 3], [4, 5, 6]]
##深拷贝:拷贝的是值
y2= copy.deepcopy(x2)
x2[0][0]=2
print(x2) #[[2, 2, 3], [4, 5, 6]]
print(y2) #[[1, 2, 3], [4, 5, 6]]
4.4列表推导式
List03 =[i*2 for i in range(6) if i%2 ==0] #[0, 4, 8]
##二维
matrix = [[1,2,3],[4,5,6],[7,8,9]]
col1=[row[1] for row in matrix] #遍历每一行,把第二个元素取出 [2, 5, 8]
diag = [matrix[i][i] for i in range(len(matrix))] #获取对角线元素
flatten = [col for row in matrix for col in row] #利用列表推导式实现循环的嵌套:
print(flatten) #将二维化为一维[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ps1.元组:列表可修改,而元组一旦创建就不可修改
tuples =(0,1,"fish")
tuples[1]=0 #会报错,因为元组内容不可修改
ps2.元组中的内容虽然不可变,但如果元组中的元素指向一个可变的列表,那么依然可以修改其中的内容
s=[1,2,3]
t=[4,5,6]
tup=(s,t)
tup[0][0]=0
print(tup) #([0, 2, 3], [4, 5, 6])
5.字符串
5.1大小写换来换去
x="i Love Fishc"
print(x.capitalize())#将字符串首字母变成大写,其他字母变成小写 I love fishc
print(x.casefold()) #所有字母都为小写 i love fishc
print(x.title()) #每个单词首字母大写 I Love Fishc
print(x.swapcase()) #大小写翻转 I lOVE fISHC
print(x.upper()) #所有字母变成大写 I LOVE FISHC
print(x.lower()) #所有字母变成小写 i love fishc
5.2左中右对齐
y="123"
print(y.ljust(5,"0")) #一共5位,左对齐,右边填充0
print(y.rjust(5,"0")) #右对齐
print(y.center(5,"0")) #中间对齐y="123"
print(y.ljust(5,"0")) #一共5位,左对齐,右边填充0
print(y.rjust(5,"0")) #右对齐
print(y.center(5,"0")) #中间对齐
5.3查找与替换
##查找
z="abcdabc"
print(z.count("a")) #输出a的个数2
print(z.find("b")) #找到第一次b出现的位置1
print(z.rfind("b")) #从右往左寻找5
##替换
print(z.replace("a","b")) #把其中的a都替换成b(bbcdbbc)
table = str.maketrans("abcd","ABCD")
print(z.translate(table)) #一次性替换多个字符(ABCDABC)
5.4判断
x="abcdefg"
print(x.startswith("a")) #判断是否从a开始
print(x.endswith("g")) #判断是否到g结束
print(x.startswith("b"),1) #从第二位开始算
print(x.istitle()) #判断是否所有单词以大写开头
print(x.isalpha()) #判断所有的元素都为字母
print(x.isidentifier()) #判断是否为标识符(字母数字下划线 且数字不能打头)
5.5截取
x=" abc "
print(x.lstrip()) #去掉左边空格
print(x.rstrip()) #去掉右边空格
print(x.strip()) #去掉所有空格
y="a,b,c"
print(y.split(",")) #按逗号进行分割
5.6格式化字符串
print("1+2={},2的平方是{}".format(1+2,2*2)) #1+2=3,2的平方是4
print("{1}日当午,汗滴禾下{0}".format("土","锄禾")) #锄禾日当午,汗滴禾下土
print("我叫{name},我爱{0}".format("python",name="fishc")) #我叫fishc,我爱python
ps.一些其他函数:
1.判断是否为同一对象
01.根据id值
##对于列表
s=[1,2,3]
print(id(s))
s*=2
print(id(s)) #两次输出的id相同
##对于元组
s2=(1,2,3)
print(id(s))
s*=2
print(id(s)) #两次输出的id不同
02. 利用is()或is not() 函数
x="fishC"
y="fishC"
print(x is y) #true
x1=[1,2,3]
y1=[1,2,3]
print(x1 is y1) #false
2.删除操作
##删除操作
x=[1,2,3,4,5]
del x[2:4] ## x[2:4] =[]
print(x) #输出[1 2 5]
3.列表,元组,字符串的相互转换
list =[1,2,3]
print(tuple(list)) #输出元组(1, 2, 3)
##其他的转换也同理
4.min()与max()与sum()
s=[1,2,3]
print(min(s)) #输出1
print(sum(s)) #输出6
str="abcde"
print(min(str)) #输出a(按照ascll码值)
5.排序函数
s=[0,2,1,3]
print(sorted(s)) #正序输出
print(sorted(s,reverse=True)) #倒叙输出
t=["a","ab","abc","abcd"]
print(sorted(t,key=len)) #按照长度输出
print( list(reversed(t)) ) #倒叙输出
6.其他函数
#enumerate():将迭代对象转化成从0开始的二元数组
seasons=["spring","summer","autumn","winter"]
print( list(enumerate(seasons)) )
#输出[(0, 'spring'), (1, 'summer'), (2, 'autumn'), (3, 'winter')]
##map():对提供的对象进行加工
mapped=map(ord,"fishC") ##ord指的是按照ascll码输出
print(list(mapped))
mapped01 = map(max,[0,1,1],[1,2,3],[3,4,5]) #max指的是输出每一列最大的数
print(list(mapped01))
##filter函数
print( list( filter(str.islower,"fishC") ) ) #把其中的小写过滤出