In the world of programming, seldom there is a need to replace all the words/characters at once in the whole file python offers this functionality using functions translate() and its helper functions maketrans(). Both functions are discussed in this article.
maketrans() function is used to construct the transition table i.e specify the list of characters that need to be replaced in the whole string or the characters that need to be deleted from the string
Syntax : maketrans(str1, str2, str3)
Parameters :
str1 : Specifies the list of characters that need to be replaced.
str2 : Specifies the list of characters with which the characters need to be replaced.
str3 : Specifies the list of characters that needs to be deleted.Returns : Returns the translation table which specifies the conversions that can be used by translate()
To translate the characters in the string translate() is used to make the translations. This function uses the translation mapping specified using the maketrans().
Syntax : translate(table, delstr)
Parameters :
table : Translate mapping specified to perform translations.
delstr : The delete string can be specified as optional argument is not mentioned in table.Returns : Returns the argument string after performing the translations using the translation table.
Code #1 : Code to translate using translate() and maketrans().
# Python3 code to demonstrate # translations using # maketrans() and translate() # specify to translate chars str1 = "wy" # specify to replace with str2 = "gf" # delete chars str3 = "u" # target string trg = "weeksyourweeks" # using maketrans() to # construct translate # table table = trg.maketrans(str1, str2, str3) # Printing original string print ( "The string before translating is : " , end = "") print (trg) # using translate() to make translations. print ( "The string after translating is : " , end = "") print (trg.translate(table)) |
Output :
The string before translating is : weeksyourweeks The string after translating is : neveropen
Translation can also be achieved by specifying the translation dictionary and passing as an object which acts as a mapping. In this case, there is no need for maketrans() to perform translations.
Code #2 : Code to translate without maketrans().
# Python3 code to demonstrate # translations without # maketrans() # specifying the mapping # using ASCII table = { 119 : 103 , 121 : 102 , 117 : None } # target string trg = "weeksyourweeks" # Printing original string print ( "The string before translating is : " , end = "") print (trg) # using translate() to make translations. print ( "The string after translating is : " , end = "") print (trg.translate(table)) |
Output :
The string before translating is : weeksyourweeks The string after translating is : neveropen
Application :
There are many are times where mistakes can occur while coding or developing, these functions provide an easy and quick way to replace and rectify them and would potentially save a lot of time.