你想去掉文本字符串開頭,結尾或者中間不想要的字符,好比空白。python
對於簡單的文本替換,咱們可使用[lr]strip
和replace
微信
strip()
方法能用於刪除開始或結尾的字符。 lstrip()
和 rstrip()
分別從左和從右執行刪除操做。 默認狀況下,這些方法會去除空白字符,可是你也能夠指定其餘字符集合。app
>>> ' spacious '.lstrip() 'spacious ' >>> 'www.example.com'.lstrip('cmowz.') 'example.com' >>> ' spacious '.rstrip() ' spacious' >>> 'mississippi'.rstrip('ipz') 'mississ' >>> ' spacious '.strip() 'spacious' >>> 'www.example.com'.strip('cmowz.') 'example'
若是須要替換或者刪除中間的某些字符,可使用replace
方法編碼
>>> 'abc'.replace('b', '') 'ac'
那麼對於複雜的替換或者刪除操做,好比須要一次替換多個字符,可使用str.translate(table)
方法spa
這個方法須要傳入的table
是一個實現了__getitem__()
方法的對象(例如dict),其中key必須是unicode編碼,value是unicode編碼或者字符或者None
code
mapping = { ord('1'): 'a', ord('2'): ord('b'), ord('3'): None, } str1 = '123' str2 = str1.translate(mapping) print(str2)
輸出爲ab
對象
咱們也可使用str.maketrans()
來更簡單的生成上述的table
,好比經過一個key和value都是字符的dict
生成一個上述的table
ip
mapping = { '1': 'a', '2': ord('b'), '3': None, } str1 = '123' str2 = str1.translate(str.maketrans(mapping)) print(str2)
輸出爲ab
ci
也能夠經過兩個相同長度的字符串建立一個上述的table
unicode
mapping = str.maketrans('123', 'abc') str1 = 'ppp123yyy' str2 = str1.translate(mapping) print(str2) pppabcyyy
字符串替換和刪除的方法有不少,通常來講爲了追求效率,咱們應該使用最簡單的那個方法
好比須要替換或刪除頭部或者尾部的時候考慮strip
、lstrip
、rstrip
還須要替換或刪除中間元素時候再考慮replace
若是遇到更復雜的替換刪除操做,或者使用上述方法來作很是麻煩的時候,能夠考慮translate
方法
固然,當涉及到一些模式的時候,可使用考慮re
模塊來處理字符串
Stack Overflow
歡迎關注個人微信公衆號:python每日一練