Python - String Method - maketrans() Tutorial
This method will return a mapping table that can be used with the translate() method to replace the specified characters.
Syntax-
String.maketrans(x, y, z)
Note - It is case sensitive
#x - If only one argument is passed, then it has to be a dictionary.
If more than one argument, then it has a string specifying the
characters you want to replace.
#y - (Optional) It has to be a string of the same length as argument x.
Each character in the first argument will be replaced with
the corresponding character is given in argument y.
#z - (Optional) It describes which character need to remove from original string
Example-
str1 = "Hello Jack"
x = "cKa"
y = "lLI"
mytable = str1.maketrans(x, y)
print(mytable)
print(str1.translate(mytable))
Output-
{99: 108, 75: 76, 97: 73}
Hello JIlk
In the above example-
"c" is replace with "l"
"K" isn't available in original string because of case sensitive, therefore no changes has been done.
And a" is replaced with "I" with the help of maketrans() method.
maketrans() method will return a mapping table( i.e unicode of each character) in the form of dictionary. To convert it into string translate() method has to be used.
First two argument should have equal length
str1 = "Hello Jack"
x = "cKa"
y = "lLIOyt"
mytable = str1.maketrans(x, y)
print(str1.translate(mytable))
Output-
ValueError: the first two maketrans arguments must have equal length
In the above example-
both the argument x and y are of different length. Hence, it will raise a ValueError exception.
maketrans() method with third argument
str1 = "Hello Jack"
x = "cKa"
y = "lLe"
z = "oe"
mytable = str1.maketrans(x, y, z)
print(str1.translate(mytable))
print(str1)
Output-
Hll Jelk
Hello Jack
In the above example-
First, third argument z will remove character "o" and "e" ,then the character of argument x will be replaced by argument y.