最近在學習Python cookbook,遇到字符串的translate方法,發現功能很強大,但有點難以理解,因而在網上查閱資料和官方文檔,記下本身的理解,有誤的地方,請多多指教。python
translate的用法以下:學習
bstr = astr.translate(strtable,delete)spa
astr是一個須要被轉換的字符串,strtable是一個翻譯表,delete包含的字符在astr中須要被移除,移除後剩下的字符通過翻譯表獲得bstr。翻譯
翻譯表是什麼呢?翻譯表是經過maketrans方法轉換而來,其原型以下:code
string.maketrans(instr,outstr) 返回一個翻譯表文檔
instr中的字符是須要被outstr中的字符替換,並且instr和outstr的長度必須相等,返回的翻譯表的長度必須是256.以下面的例子:字符串
instr = 'abc' outstr = '123' table = string.maketrans(instr,outstr)
則在table中,本來存儲字符a,b,c的位置分別換成了1,2,3,maketrans的做用就是這樣,還能夠理解吧
獲得翻譯表以後,而後就用translate方法進行翻譯,看下面幾個例子,就容易理解了。原型
例子1:string
>>> import string >>> instr = '' >>> outstr = '' >>> table = string.maketrans(instr,outstr) >>> astr = 'abcdefg-123' >>> bstr = astr.translate(table,'123') >>> bstr 'abcdefg-' >>>
從例1能夠看出,咱們的翻譯表沒有通過映射,但在調用translate時,把astr中的字符1,2,3 給刪除了,動手試試。table
例2:
>>> import string >>> instr = 'abcde' >>> outstr = '12345' >>> table = string.maketrans(instr,outstr) >>> astr = 'abcdefg-123' >>> bstr = astr.translate(table,'123') >>> bstr '12345fg-' >>>
不用多解釋,若是還沒明白的話,趕快動手試試吧,實踐是檢驗真理的惟一標準。