Python 字串 maketrans() 方法



Python 字串 maketrans() 方法建立一個包含多個字元對映資訊的轉換表。然後,此轉換表由 translate() 函式使用,以將這些字元替換為表中相應的字元。

為了更深入地瞭解,maketrans() 方法接受兩個字串:一個包含實際字元,另一個包含要對映的字元。對一個字串中的字元與其在另一個字串中的對應字元執行一對一的對映。建立轉換表以相應地將這些值儲存在其中。

注意 - 此方法使用的兩個字串必須具有相同的長度。

語法

以下是 Python 字串 maketrans() 方法的語法 -

str.maketrans(x[, y[, z]])

引數

  • x - 這是包含實際字元的字串。

  • y - 這是包含對應對映字元的字串。

  • z - 這是一個字串。它是可選的第三個引數。如果傳遞,則此字串中的每個字元都將對映到 None。

返回值

此方法返回一個要與 translate() 函式一起使用的轉換表。

示例

如果我們將母音字串作為 intab 引數,並將數字字串作為 outtab 引數,則結果字串將把其母音字元替換為相應的數字。

以下示例顯示了 Python 字串 maketrans() 方法的用法。在這裡,我們建立了兩個字串:“aeiou”和“12345”。還建立了另一個字串“this is string example....wow!!!”來執行轉換。maketrans() 方法將“aeiou”和“12345”作為引數,並生成一個包含這些字串的對映字元的轉換表。稍後呼叫 translate() 方法以生成轉換後的字串。

intab = "aeiou"
outtab = "12345"
 
str = "this is string example....wow!!!"
trantab = str.maketrans(intab, outtab)
print("Translation Table: ")
print(trantab)
print()

#using trantab on translate() function
print(str.translate(trantab))

當我們執行上述程式時,它會產生以下結果 -

Translation Table:
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}

th3s 3s str3ng 2x1mpl2....w4w!!!

示例

如果我們將 intab 和 outtab 引數一起作為字典傳遞給該方法,則轉換表將作為另一個字典返回。

在此示例中,建立了輸入字串“Welcome to Tutorialspoint”和一個字典。字典作為引數傳遞給 maketrans() 方法,轉換表以另一個字典的形式輸出。

mydict = {'a': '1', 'b': '2', 'c': '3','d': '4','e': '5'}
 
str = "Welcome to Tutorialspoint"
print("Translation Table: ")
print(str.maketrans(mydict))
print()

#using trantab on translate() function
print(str.translate(str.maketrans(mydict)))

讓我們編譯並執行上面的程式,輸出將顯示如下 -

Translation Table: 
{97: '1', 98: '2', 99: '3', 100: '4', 101: '5'}

W5l3om5 to Tutori1lspoint

示例

當我們將兩個長度不同的字串作為引數傳遞給該方法時,會引發 ValueError。

在這個給定的示例中,我們建立了兩個長度不同的字串,並將其作為引數傳遞給該方法。建立另一個字串,並將 maketrans() 方法應用於此字串。由於兩個字串引數的長度不相等,因此預計會引發 ValueError。

x = 'kjads'
y = 'jakjdk'
 
str = "Welcome to Tutorialspoint"
print(str.maketrans(x, y))

執行上述程式後,獲得的輸出如下 -

Traceback (most recent call last):
  File "main.py", line 5, in 
print(str.maketrans(x, y))
ValueError: the first two maketrans arguments must have equal length

示例

當我們將三個引數傳遞給該方法時,第一個字串中的字元將對映到第二個字串中的字元;而第三個字串中的字元將對映到 None。

在以下示例中,我們建立了三個字串,並將它們作為引數傳遞給 maketrans() 方法。第一個字串中的字元與第二個字串中的字元一一對應,而第三個字串中的字元對映到 None。

x = 'abcde'
y = '12345'
z = '!@#$%'
 
str = "Welcome to Tutorialspoint"
print(str.maketrans(x, y, z))

上述程式的輸出如下 -

{97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 33: None, 64: None, 35: None, 36: None, 37: None}
python_strings.htm
廣告