當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python String maketrans()用法及代碼示例


字符串maketrans() 方法返回可用於translate() 方法的轉換映射表。

簡單來說,maketrans() 方法是一種靜態方法,它創建一個字符到其翻譯/替換的一對一映射。

它為每個字符創建一個 Unicode 表示以進行翻譯。

當在translate() 方法中使用時,此轉換映射隨後用於將字符替換為其映射的字符。

用法:

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

在這裏,yz 是可選參數。

參數:

maketrans() 方法采用 3 個參數:

  • x- 如果隻提供一個參數,它必須是字典。
    字典應包含從單個字符串到其翻譯的一對一映射,或一個 Unicode 數字(對於 'a' 為 97)到其翻譯的一對一映射。
  • y- 如果傳遞了兩個參數,則它必須是兩個長度相等的字符串。
    第一個字符串中的每個字符都是對第二個字符串中相應索引的替換。
  • z- 如果傳遞了三個參數,則第三個參數中的每個字符都映射為 None。

返回:

maketrans() 方法返回一個轉換表,其中包含 Unicode 序數與其轉換/替換的一對一映射。

示例 1:使用帶有 maketrans() 的字典的翻譯表

# example dictionary
dict = {"a": "123", "b": "456", "c": "789"}
string = "abc"
print(string.maketrans(dict))

# example dictionary
dict = {97: "123", 98: "456", 99: "789"}
string = "abc"
print(string.maketrans(dict))

輸出

{97: '123', 98: '456', 99: '789'}
{97: '123', 98: '456', 99: '789'}

這裏,定義了字典dict。它包含字符 a、b 和 c 分別到 123、456 和 789 的映射。

maketrans() 創建字符的 Unicode 序數與其相應翻譯的映射。

因此,97 ('a') 映射到 '123',98 'b' 映射到 456,99 'c' 映射到 789。這可以從兩個字典的輸出中得到證明。

此外,如果字典中映射了兩個或更多字符,則會引發異常。

示例 2:使用帶有 maketrans() 的兩個字符串的翻譯表

# first string
firstString = "abc"
secondString = "def"
string = "abc"
print(string.maketrans(firstString, secondString))

# example dictionary
firstString = "abc"
secondString = "defghi"
string = "abc"
print(string.maketrans(firstString, secondString))

輸出

{97: 100, 98: 101, 99: 102}
ValueError: the first two maketrans arguments must have equal length

這裏首先定義兩個等長的字符串abcdef。並創建相應的翻譯。

僅打印第一個翻譯可以為您提供到 firstString 中每個字符的 Unicode 序數到 secondString 上相同索引字符的一對一映射。

在這種情況下,97 ('a') 映射到 100 ('d')、98 ('b') 到 101 ('e') 和 99 ('c') 到 102 ('f')。

嘗試為不等長度的字符串創建轉換表會引發 ValueError 異常,指示字符串必須具有相等的長度。

示例 3:帶有 maketrans() 的可移動字符串的翻譯表

# first string
firstString = "abc"
secondString = "def"
thirdString = "abd"
string = "abc"
print(string.maketrans(firstString, secondString, thirdString))

輸出

{97: None, 98: None, 99: 102, 100: None}

這裏,首先,創建兩個字符串firstStringsecondString之間的映射。

然後,第三個參數thirdString 將其中每個字符的映射重置為None,並為不存在的字符創建一個新映射。

在這種情況下,thirdString 將 97 ('a') 和 98 ('b') 的映射重置為 None,並為映射到 None 的 100 ('d') 創建一個新映射。

相關用法


注:本文由純淨天空篩選整理自 Python String maketrans()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。