python 移除字符串尾部的数字方法
今天在下脚本的时候遇到一个问题,比如有这样的一个字符串t="book123456",想把尾部的数字全部去掉,只留下“book”,自己用正则试了下,是实现了,但速度不是很快,于是问了一下同事,他给的解决的方法确实很简洁,也让自己长了知识点,如下:
importstring t.rstrip(string.digits)
这样就全部将数字移除了,顺便将string这个模块看了下文档,也有一定的收获。
>>>importstring
>>>string.digits
'0123456789'
>>>string.hexdigits
'0123456789abcdefABCDEF'
>>>string.octdigits
'01234567'
>>>string.letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>>string.lowercase
'abcdefghijklmnopqrstuvwxyz'
>>>string.uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>>string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c'
>>>string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>>string.whitespace
'\t\n\x0b\x0c\r'
>>>
同时string可以将字符串和int,float相互转化:
>>>string.atof("1.23")
1.23
>>>string.atof("1")
1.0
转换的时候还可以制定进制的转化
>>>string.atoi("20")
20
>>>string.atoi("20",base=10)
20
>>>string.atoi("20",base=16)
32
>>>string.atoi("20",base=8)
16
>>>string.atoi("20",base=2)
Traceback(mostrecentcalllast):
File"",line1,in
File"/usr/lib64/python2.6/string.py",line403,inatoi
return_int(s,base)
ValueError:invalidliteralforint()withbase2:'20'
>>>string.atoi("101",base=2)
5
>>>string.atoi("101",base=6)
37
capwords(s,sep=None)以sep作为分隔符,分割字符串是s,然后将每个字符串的首字母大写
>>>string.capwords("thisisadog")
'ThisIsADog'
>>>string.capwords("thisisadog",sep="")
'ThisIsADog'
>>>string.capwords("thisisadog",sep="s")
'Thisisadog'
>>>string.capwords("thisisadog",sep="o")
'ThisisadoG'
>>>
maketrans(s,r)创建一个s到r的转换列表,然后可以使用translate()方法来实现
>>>replist=string.maketrans("123","abc")
>>>replist1=string.maketrans("456","xyz")
>>>s="123456789"
>>>s.translate(replist)
'abc456789'
>>>s.translate(replist1)
'123xyz789'
以上这篇python移除字符串尾部的数字方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。