Python3实用编程技巧进阶二

网友投稿 297 2022-09-04


Python3实用编程技巧进阶二

1,如何拆分含有多种分隔符的字符串

s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'# print(s.split('|,;'))# print(s.split(';'))"""['ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz']['ab', 'cd|efg|hi,jkl|mn\topq', 'rst,uvw\txyz']"""#第一种分割l = map(lambda ss:ss.split('|'),s.split(';'))# print(list(l))#[['ab'], ['cd', 'efg', 'hi,jkl', 'mn\topq'], ['rst,uvw\txyz']]#第二种 通过extend 把多个列表合并为一个t=[]tt = map(t.extend,[ss.split('|') for ss in s.split(';')])print(list(tt))#[None, None, None]print(t)#['ab', 'cd', 'efg', 'hi,jkl', 'mn\topq', 'rst,uvw\txyz']#第二种 通过extend 把多个列表合并为一个t2=[]tt2 = map(t.extend,[map(t2.extend,[ss.split('|') for ss in s.split(';')])])print(list(tt2))#[None, None, None]print(t2)#第三种通过sum函数 合并多个列表ttt = sum([ss.split('|') for ss in s.split(';')],[])print(ttt)#和map一样的效果#['ab', 'cd', 'efg', 'hi,jkl', 'mn\topq', 'rst,uvw\txyz']def my_split(s,seps): res = [s] for sep in seps: t = [] list(map(lambda ss:t.extend(ss.split(sep)),res)) res = t return resprint(my_split(s,',;|\t'))#['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz']#第四种 通过reduce函数特性from functools import reduceddd= reduce(lambda l,sep :sum(map(lambda ss:ss.split(sep),l),[]),',;|\t',[s])print(ddd)#['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz']

2,如果调整字符串中文本的格式

import restr='2019-11-12 09:23:23 ddddd'r = re.sub(r'(?P\d{4})-(?P\d{2})-(?P\d{2})',r'\g/\g/\g',str)print(r)11/2019/12 09:23:23 ddddd

3,如何将多个小字符串拼接成一个大字符串

s1 = 'abcdefg's2 = '123456'print(s1+s2)#abcdefg123456print(str.__add__(s1,s2))#abcdefg123456print("".join([s1,s2]))#abcdefg123456

4,如何对字符串进行左中右居中对齐

s = 'abc'ss = s.ljust(10)print(ss)#abcprint(len(ss))#10print(s.rjust(10,'*'))#*******abcprint(s.center(10,'*'))#***abc****print(format(s,'*<10')) #abc*******print(format(s,'*>10')) #*******abcprint(format(s,'*^10')) #***abc****#+加号标识总输出符号print(format(123,'+'))#+123 正的print(format(-123,'+'))#-123 负的print(format(-123,'>+10'))# -123print(format(-123,'=+10'))#- 123print(format(123,'0=+10'))#+000000123d= {'lodDist':100.0,'SmallCull':0.04,'DistCull':500.0,'trilinear':40,'farclip':477}print(max(map(len,d.keys())))w = max(map(len,d.keys()))for k,v in d.items(): print(k.ljust(w),':',v) """lodDist : 100.0SmallCull : 0.04DistCull : 500.0trilinear : 40farclip : 477"""

5,如何去掉字符串中不需要的字符

s= ' sunlong@qq.com 'print(s.strip())print(s.lstrip())print(s.rstrip())s= '==++--sunlong@qq.com--++=='print(s.strip('=+-'))s2='abc:123'print(s2[:3]+s2[4:])#abc123s3 = ' abc xyz 'print(s3.strip()) #abc xyzs3 = '\t abc \t xyz \n'print(s3.replace(' ',''))# abc xyzimport reprint(re.sub('[ \t\n]+','',s3))#abcxyzprint(re.sub('\s+','',s3))#abcxyz


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java后台如何利用Pattern提取所需字符详解
下一篇:python高级编程Python 二分查找与 bisect 模块(python高级编程语言)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~