描述
Python maketrans() 方法用於給 translate() 方法創建字符映射轉換表。
可以只接受一個參數,此時這個參數是個字典類型(暫不研究這種情況)。
對於接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串,表示轉換的目標。兩個字符串的長度必須相同,為一一對應的關系。
在Python3中可以有第三個參數,表示要刪除的字符,也是字符串。
一般 maketrans() 方法需要配合 translate() 方法一起使用。
注:Python3.4 以后已經不需要從外部 string 模塊中來調用 maketrans() 方法了,取而代之的是內建函數: bytearray.maketrans()、bytes.maketrans()、str.maketrans()。
語法
maketrans() 方法語法:
Python3中:
str.maketrans(intab,outtab[,delchars])
Python2中:
import string string.maketrans(intab,outtab)
參數
- intab -- 需要轉換的字符組成的字符串。
- outtab -- 轉換的目標字符組成的字符串。
- delchars -- 可選參數,表示要刪除的字符組成的字符串。
返回值
返回一個字符映射轉換表供 translate() 方法調用。
實例
以下實例展示了使用 maketrans() 方法加 translate() 方法將所有元音字母轉換為指定的數字,並刪除指定字符:
Pyhon3中:
#!/usr/bin/python3 intab = "aeiou" outtab = "12345" deltab = "thw" trantab1 = str.maketrans(intab,outtab) # 創建字符映射轉換表 trantab2 = str.maketrans(intab,outtab,deltab) #創建字符映射轉換表,並刪除指定字符 test = "this is string example....wow!!!" print(test.translate(trantab1)) print(test.translate(trantab2))
以上實例輸出結果如下:
th3s 3s str3ng 2x1mpl2....w4w!!! 3s 3s sr3ng 2x1mpl2....4!!!
Python2中:
#!/usr/bin/python # -*- coding: UTF-8 -*- import string # 導入string模塊 intab = "aeiou" outtab = "12345" deltab = "thw" trantab = string.maketrans(intab,outtab) # 創建字符映射轉換表 test = "this is string example....wow!!!"; print test.translate(trantab); print test.translate(trantab,deltab); # Python2中,刪除指定字符在 translate() 方法中
以上實例輸出結果如下:
th3s 3s str3ng 2x1mpl2....w4w!!! 3s 3s sr3ng 2x1mpl2....4!!!