Chaîne Python maketrans ()

La méthode de chaîne maketrans () renvoie une table de mappage pour la traduction utilisable pour la méthode translate ().

En termes simples, la maketrans()méthode est une méthode statique qui crée un mappage un à un d'un caractère à sa traduction / remplacement.

Il crée une représentation Unicode de chaque caractère pour la traduction.

Ce mappage de traduction est ensuite utilisé pour remplacer un caractère par son caractère mappé lorsqu'il est utilisé dans la méthode translate ().

La syntaxe de la maketrans()méthode est:

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

Ici, y et z sont des arguments optionnels.

Paramètres de chaîne maketrans ()

maketrans() La méthode prend 3 paramètres:

  • x - Si un seul argument est fourni, il doit s'agir d'un dictionnaire.
    Le dictionnaire doit contenir un mappage 1 à 1 d'une chaîne de caractères unique à sa traduction OU un numéro Unicode (97 pour «a») à sa traduction.
  • y - Si deux arguments sont passés, il doit s'agir de deux chaînes de longueur égale.
    Chaque caractère de la première chaîne remplace son index correspondant dans la deuxième chaîne.
  • z - Si trois arguments sont passés, chaque caractère du troisième argument est mappé sur Aucun.

Valeur renvoyée par String maketrans ()

La maketrans()méthode renvoie une table de traduction avec un mappage 1 vers 1 d'un ordinal Unicode à sa traduction / remplacement.

Exemple 1: Table de traduction utilisant un dictionnaire avec 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))

Production

 (97: '123', 98: '456', 99: '789') (97: '123', 98: '456', 99: '789') 

Ici, un dictionnaire dict est défini. Il contient un mappage des caractères a, b et c à 123, 456 et 789 respectivement.

maketrans() crée un mappage de l'ordinal Unicode du caractère avec sa traduction correspondante.

Ainsi, 97 ('a') est mappé à '123', 98 'b' à 456 et 99 'c' à 789. Cela peut être démontré à partir de la sortie des deux dictionnaires.

De plus, si deux caractères ou plus sont mappés dans le dictionnaire, cela déclenche une exception.

Exemple 2: Table de traduction utilisant deux chaînes avec 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))

Production

 (97: 100, 98: 101, 99: 102) ValueError: les deux premiers arguments maketrans doivent avoir la même longueur 

Ici d'abord, deux chaînes de longueur égale abcet defsont définies. Et la traduction correspondante est créée.

L'impression de la première traduction uniquement vous donne un mappage 1 à 1 avec l'ordinal Unicode de chaque caractère dans firstString vers le même caractère indexé sur secondString.

Dans ce cas, 97 ('a') est mappé à 100 ('d'), 98 ('b') à 101 ('e') et 99 ('c') à 102 ('f').

Essayer de créer une table de traduction pour des chaînes de longueur inégale déclenche une ValueErrorexception indiquant que les chaînes doivent avoir la même longueur.

Exemple 3: Table de translation avec chaîne amovible avec maketrans ()

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

Production

 (97: Aucun, 98: Aucun, 99: 102, 100: Aucun) 

Ici, tout d'abord, le mappage entre les deux chaînes firstString et secondString est créé.

Ensuite, le troisième argument thirdString réinitialise le mappage de chaque caractère qu'il contient Noneet crée également un nouveau mappage pour les caractères inexistants.

Dans ce cas, thirdString réinitialise le mappage de 97 ('a') et 98 ('b') à None, et crée également un nouveau mappage pour 100 ('d') mappé à None.

Articles intéressants...