一、字符串常用方法
1 s = ' ha.hahaha.' 2 print(s.count('a'))#找某一个元素在字符串里出现的次数 3 print(s.index('a'))#找某一个元素的下标,如果出现多次取第一次出现的下标 4 print(s.index('a',2))#从指定的位置开始找 5 print(s.index('f')) #找不存在的元素报错 7 print(s.find('f')) #跟index一样,找不存在的元素,会返回-1 8 print(s.strip())#默认去掉字符串两边的空格和换行符 9 print(s.strip('.'))#去掉两边指定的字符串 10 print(s.lstrip())#去掉左边的空格和换行符 11 print(s.rstrip())#去掉右边的空格和换行符
1 s1 = '18612341234sasfdfsFEFRERR' 2 print(s1.startswith('186'))#判断以什么开头,如果正确返回True,如果错误返回False 3 print(s1.endswith('2'))#判断以什么结尾,如果正确返回True,如果错误返回False 4 print(s1.lower())#将字符串全部转为小写 5 print(s1.upper())#将字符串全部转为大写 6 print(s1.islower())#判断字符串是否全部小写 7 print(s1.isupper())#判断字符串是否全部大写
1 s2 = ['1','2','3','4','5','6','10','11','12','123','1234'] 2 s3 = '1' 3 print(s3.zfill(4))#用来补零的,传的参数是总的长度 4 for i in s2: 5 print(i.zfill(4))
1 s4 = 'ma1111 r113232 ry' 2 s5 = 'lf,fd,wq,er,oi,fer' 3 s6 = 'fd,rere,df' 4 print(s5.split(','))#分割字符串 5 print(s6.split())#什么都不传,默认是以空格来分割,指定的分割符不存在,则直接把整个元素放list里 6 print(s4.capitalize())#首字母大写 7 print(s4.replace('1','5',2))#替换(被替换的值,替换后的值,替换的次数默认是全部替换) 8 print(s4.isdigit())#判断是否为纯数字 9 print(s4.center(50,'*'))#指定长度,字符串居中 10 print(s4.isspace())#判断是否为空格
1 s7 = ['fd','fdsf','rrewr','rewrw'] 2 s8 = [1,2,3,4,5,6] 3 print(','.join(s7))#将list里面的元素用什么连接起来,变成一个字符串 4 print(','.join(s8))#如果list里的元素是int类型的,会报错 5 s9 = 'fdsfsfsfsfsfsrewrewr' 6 print(','.join(s9))#只要是可以遍历的都可以连接
1 s1 = '编号是:{name},{age}' 2 print(s1.format(name='xiaolin',age=19))#字符串格式化 3 s2 = '编号是:{name},{age}' 4 print(s2.format_map({'name':'cjxxl1213','age':18}))#字符串格式化,传参为字典
1 s1 = 'fdsfsdfsrewrwe12' 2 print(s1.isalpha())#如果是大小写字母,汉字返回True,其他字符串返回False 3 print(s1.isalnum())#如果是大小写字母,汉字,数字返回True,其他字符串返回False
二、元组
1 l = (1,2,3)#元组tuple,不能修改 2 print(l[0]) 3 #l[0] = 3#这样会报错 4 print(l[0]) 5 #比如定义一个连接数据库,不能修改,就可以用元组 6 dbinfo = ('ip','3306','user','password') 7 print(dbinfo.index('ip')) #找下标 8 print(dbinfo.count('ip')) #统计元组中出现的次数 9 10 l2 = (1) #这个是int类型 11 print(type(l2)) 12 13 l3 = (1,) 14 print(type(l3)) #元组如果只有一个元素时,要加,
三、集合
集合(set)天生可以去重,集合是无序的
1 #set 2 #1、集合天生可以去重 3 #2、集合是无序的 4 s = {1,2,3,4,5,6,7,7,7,6,6,8,9} 5 l = [1,2,3,4,5,6,7,7,7,6,6,8,9] 6 s1 = {} #不是集合,是空的字典 7 s2 = set()#定义一个空的集合 8 print(s) 9 print(l) 10 #给list去重 11 l = list(set(l)) 12 print(l) 13 14 s.add(10)#添加元素 15 print(1) 16 s.update({8,9,10,11,12})#把另外一个集合的加入这个集合里面 17 print(s) 18 s.remove(4)#删除指定元素 19 print(s) 20 s.pop()#随机删除一个元素 21 print(s) 22 23 24 #关系测试 交集,并集,差集,对称差集 25 l1 = [1,2,3,4] 26 l2 = [2,3,6,7] 27 l1 = set(l1) 28 l2 = set(l2) 29 print(l1 & l2)#取交集,就是两个集合里相同的元素 30 print(l1.intersection(l2))#取交集,就是两个集合里相同的元素 31 32 print(l1.union(l2))#取并集,就是两个集合合并到一起 33 print(l1 | l2)#取并集,就是两个集合合并到一起 34 35 print(l1 - l2)#取差集,l1中存在,l2中不存在的 36 print(l1.difference(l2)) 37 38 print(l1^l2)#对称差集,把a集合和b集合里相同的元素去掉,剩下的叫对称差集 39 print(l1.symmetric_difference(l2)) 40 41 a = {1,2,3,4} 42 b = {2,3} 43 print(a.issuperset(b)) #判断l1是否为l2的父集 44 print(b.issubset(a))#判断l2是否为l1的子集
四、其他小知识
4.1 切片
切片是list范围取值的一种方式
1 #切片是list范围取值( 1-5)的一种方式 2 l = list(range(1,11))#1-10 3 print(l) 4 print(l[0:5])#取前面5个,切片的下标顾头不顾尾 5 print(l[:6])#取前面5个,前面一个元素是0,可以不写 6 print(l[5:11])#取后面5个 7 print(l[5:])#取后面5个,:后面的元素不写默认取到末尾 8 print(l[0:11:2])#2-step 步长 9 print(l[::-1])#步长为负数是从后往前取 10 print(l[0:11:-1])#步长为负数,list的下标就变为-10~-1,这个取不到值 11 print(l[-1:-11:-1])#步长为负数,list的下标就变为-10~-1 12 13 ''' 14 [1,2,3,4,5,6,7,8,9,10] 15 -10-9-8-7-6-5-4-3-2-1 16 1、如果步长为负数的话,就从后面往前取了 17 2、前面指定范围用的下标也得写负数 18 ''' 19 20 #元组也可以用切片取值 21 t = (1,2,3) 22 print(t[::1]) 23 24 #字符串也可以用切片取值 25 s = 'fdsfsfsfsfs' 26 print(s[::-1])
4.2 简化代码的小技巧
1、非空即真,非0即真
1 True 2 False 3 s=''#False 4 l=[]#False 5 d={}#False 6 t=()#False 7 se=set()#False 8 num1=1#true 9 num2=0#false 10 l1=['']#true 11 12 username = 'fdsfksj' 13 #常规代码 14 if username != '': 15 print('注册账号不为空') 16 #简化后的代码 17 if username:#注册账号不为空,则继续验证 18 print('注册账号不为空111')