一、maketrans簡介
Python中提供了一個名為maketrans的字符串函數,可以用來生成一個字符映射表。該映射表可用於translate函數對字符串進行快速翻譯或刪除操作。
maketrans函數的基本語法如下:
str.maketrans(x[, y[, z]])
其中,x是用於指定要替換的字符串,y是用於指定替換的目標字符串,z是用於指定要刪除的字符。x、y和z三個參數至少有一個是必須的。
例如:
transtable = str.maketrans('aeiou','12345') text = 'this is a test string' print(text.translate(transtable))
輸出結果為:
th3s 3s 1 t2st str3ng
上面的代碼中,將字符串text中的元音字母”a”、”e”、”i”、”o”和”u”分別替換成數字”1″、”2″、”3″、”4″和”5″。
二、maketrans的參數
maketrans函數有三個參數,分別是x、y和z,用來指定字符映射表的生成方式。
1. x和y參數
x和y參數分別指定要替換的字符和替換的目標字符。這兩個參數的長度必須相等。如果y比x短,則其餘字符將被直接刪除。
例如:
transtable = str.maketrans('aeiou','123') text = 'this is a test string' print(text.translate(transtable))
輸出結果為:
th3s 3s 2st str3ng
上面的代碼中,由於y中只有三個字符,因此x中的最後兩個字符”o”和”u”被直接刪除了。
2. z參數
z參數指定了要刪除的字符。如果同時指定了y參數,則z參數只刪除在x中不存在的字符。
例如:
transtable = str.maketrans('aeiou','','st') text = 'this is a test string' print(text.translate(transtable))
輸出結果為:
hi i a e ring
上面的代碼中,將字符串text中的元音字母”a”、”e”、”i”、”o”和”u”刪除,並且將字符串中的字母”s”和”t”刪除。
三、maketrans常見用途
1. 快速替換字符串中的多個字符
使用maketrans可以快速地替換字符串中的多個字符,比如將全角字符替換成半角字符。
例如:
import string transtable = str.maketrans(string.whitespace, ' ' * len(string.whitespace), ',。!?;:“”‘’') text = ' 1234567890!?()【】{},。;:“”‘’\n\n\n\n\n\n\n\n\n\n今天天氣真好,出去玩吧。' print(text.translate(transtable))
輸出結果為:
1234567890!?\(\)\[\]\{\}\ \ \ \ \ \ \ \ 今天天氣真好,出去玩吧.
上面的代碼中,定義了一個字符映射表,用來將字符串中的全角空格、逗號、句號、感嘆號、問號、分號、雙引號、單引號、括號和括號中的文本,全部替換成半角字符。
2. 快速刪除字符串中的指定字符
使用maketrans函數還可以快速地刪除字符串中的指定字符,比如刪除html標籤中的所有內容。
例如:
transtable = str.maketrans('', '', '') text = 'test hello world' print(text.translate(transtable))
輸出結果為:
htmlheadtitletesttitleheadbodyhello worldbodyhtml
上面的代碼中,定義了一個字符映射表,用來將字符串中的””直接刪除。
四、總結
maketrans是Python字符串常用函數之一,可以快速生成用於字符串翻譯的字符映射表,或者用於刪除指定字符。maketrans函數非常靈活,可用於多種應用場景,可以大大提高開發效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160950.html