一、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-tw/n/160950.html