字符串
常用内置函数:
str.join(‘aaa’)
str.replace(‘old’,’new’)
str.find
str.split
str.startwith() 和 str.endswith()
str.swapcase() 大写转小写 同时 小写转大写
str.isdigit() 判断是否是数字
str.capitalize() 首字母大写
翻译表
import string
a = '222333111'
ii = string.maketrans('123','abc')
print a.translate(ii)
a = '222333111'
ii = string.maketrans('','')
print a.translate(ii,'123')
偏移
python的字串列表有2种取值顺序:
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
s = 'ilovepython'
s[1:5]的结果是love。
str = 'Hello World!'
print str
print str[0]
print str[-1]
print str[2:5]
print str[2:]
print str * 2
print str + "TEST"
a=“你好” len(a) ->6
a=u“你好” len(a) ->2 还有一种前面添加r”\n“
g = a.decode(”utf-8“) len(g) ->2
拼接: +
获取值: var1[0] var1[1:5]
包含: in 如果字符串中包含给定的字符返回
重复输出字符串: a * 2 'HelloHello'
占位符 % format
%方式
print "name is %s weight is %d kg!" % ('Zara', 21) ==》name is Zara weight is 21 kg!
format方式:
print ”你好 {} {} 安徽“.format(”秦“,”欢迎来到“) 推荐
print ”你好 {1} {0} 安徽“.format(”秦“,”欢迎来到“) 推荐
print ”你好 {name} {welcome} 安徽“.format(name=”秦“,welcome=”欢迎来到“) 推荐
print ”this is %(whose)s %(fruit)s“ % {‘whose’:‘my’,‘fruit’:‘apple’}
如何拆分含有多种分隔符的字符串:
s='a,se:5;6tt|trtr\dsdss'
解决方案:
t=[]
map(lambda s: t.extend(s.split(',')),res)
print t
继续分割
[x for x in res if x]
import re
print re.split(r'[,:|\+]',s)
如何判断字符串a是否以字符串b开头或结尾
解决方案:
使用字符串的str.startwith() 和 str.endswith()方法。
注意:多个匹配是参数使用元组
如何调整字符串中文本的格式
如一段文本中的日期格式
解决方案:
使用正则表达式re.sub()方法做字符串替换,利用正则表达式的捕获组,捕获每个部分的内容,在替换字符串中调整各个捕获组的顺序
log = open('/var/log/dpkg.log').read()
import re
print re.sub('(\d{4})-(\d{2})-(\d{2})',r'\2/\3/1',log)
print re.sub('(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',r'\g<month>/\g<day>/\g<year>',log)
如何将多个小字符串拼接成一个大字符串
解决方案:
1.使用 +
2.使用 join
s1 = 'abcdef'
s2 = '12345'
print s1+s2
print ';'.join(['ab','2332','dfddfd','222'])
print ''.join(['ab','2332','dfddfd','222'])
''.jion(str(x) for x in l)
如何对字符串进行左右居中对齐
解决方案:
1.使用字符串的str.ljust(),str.rjust,str.center()进行左右居中对齐
2.使用format()方法,传递类似'<20','<20','^20' 参数完成同样的任务
测试:
a = 'abc'
print a.ljust(20)
print a.ljust(20,'=')
print a.rjust(20)
print format(a,'<20')
如何去掉字符中不需要的字符
解决方案:
1.字符串strip(),lstrip(),rstrip() 方法去掉字符串两端字符
可以去除空字符串 如s.strip() 去掉两边的字符串
去掉指定字符需要指定参数 s='++aaa====' 则:s.strip('+=')去掉左右的+= 最后结果为'aaa'
2.删除单个固定位置的字符,可以使用切片+拼接的方法
s = 'abc:123'
s[:3]+s[4:]
3.字符串的replace()方法或者正则表达式re.sub()删除任意位置的字符
s = '\tabc\t123\txyz'
s.replace('\t','')
s= '\taaa\rbbb\t'
import re
re.sub('[\t\r]','',s)
4.字符串translate()方法,可以同时删除多种不同字符
str.translate 用例:
s = 'abc122333222xyz'
import string
string.maketrans('abcxyz','xyzabc')
print s.translate(string.maketrans('abcxyz','xyzabc'))
s= '\taaa\rbbb\t'
print s.translate(None,'\t\r\n')
/usr/local/tomcat/webapps/yoa/WEB-INF/views/modules/manager