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
广告