今天在下腳本的時候遇到一個問題,比如有這樣的一個字符串 t = "huofei123456",想把尾部的數字全部去掉,只留下“huofei”,自己用正則試了下,是實現了,但速度不是很快,於是在網上查詢了下,看到了解決的方法,也讓自己長了知識點,如下:
import string t.rstrip(string.digits)
這樣就全部將數字移除了,順便將string這個模塊看了下文檔,也有一定的收獲。
>>> import string >>> 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 (most recent call last): File "", line 1, in <module> File "/usr/lib64/python2.6/string.py", line 403, in atoi return _int(s, base) ValueError: invalid literal for int() with base 2: '20' >>> string.atoi("101",base=2) 5 >>> string.atoi("101",base=6) 37
capwords(s, sep = None)以sep作為分隔符,分割字符串是s,然后將每個字符串的首字母大寫
>>> string.capwords("this is a dog") 'This Is A Dog' >>> string.capwords("this is a dog",sep=" ") 'This Is A Dog' >>> string.capwords("this is a dog",sep="s") 'This is a dog' >>> string.capwords("this is a dog",sep="o") 'This is a doG' >>>
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 移除字符串尾部的數字方法,如有錯誤請多批評指正。謝謝各位博友 !