Cadena de Python maketrans ()

El método string maketrans () devuelve una tabla de mapeo para traducción utilizable para el método translate ().

En términos simples, el maketrans()método es un método estático que crea un mapeo uno a uno de un carácter a su traducción / reemplazo.

Crea una representación Unicode de cada carácter para su traducción.

Este mapeo de traducción se usa para reemplazar un carácter por su carácter mapeado cuando se usa en el método translate ().

La sintaxis del maketrans()método es:

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

Aquí, yyz son argumentos opcionales.

Parámetros de string maketrans ()

maketrans() el método toma 3 parámetros:

  • x : si solo se proporciona un argumento, debe ser un diccionario.
    El diccionario debe contener una asignación 1 a 1 de una sola cadena de caracteres a su traducción O un número Unicode (97 para 'a') a su traducción.
  • y : si se pasan dos argumentos, deben ser dos cadenas con la misma longitud.
    Cada carácter de la primera cadena es un reemplazo de su índice correspondiente en la segunda cadena.
  • z : si se pasan tres argumentos, cada carácter del tercer argumento se asigna a Ninguno.

Valor de retorno de String maketrans ()

El maketrans()método devuelve una tabla de traducción con una asignación 1 a 1 de un ordinal Unicode a su traducción / reemplazo.

Ejemplo 1: tabla de traducción usando un diccionario con 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))

Salida

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

Aquí, se define un diccionario de diccionario. Contiene un mapeo de los caracteres a, byc a 123, 456 y 789 respectivamente.

maketrans() crea una asignación del ordinal Unicode del carácter a su traducción correspondiente.

Por tanto, 97 ('a') se asigna a '123', 98 'b' a 456 y 99 'c' a 789. Esto se puede demostrar a partir de la salida de ambos diccionarios.

Además, si se asignan dos o más caracteres en el diccionario, se genera una excepción.

Ejemplo 2: tabla de traducción usando dos cadenas con 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))

Salida

 (97: 100, 98: 101, 99: 102) ValueError: los dos primeros argumentos maketrans deben tener la misma longitud 

Aquí primero, se definen dos cadenas de igual longitud abcy def. Y se crea la traducción correspondiente.

Imprimir solo la primera traducción le da una asignación 1 a 1 al ordinal Unicode de cada carácter en firstString al mismo carácter indexado en secondString.

En este caso, 97 ('a') se asigna a 100 ('d'), 98 ('b') a 101 ('e') y 99 ('c') a 102 ('f').

Intentar crear una tabla de traducción para cadenas de longitud desigual genera una ValueErrorexcepción que indica que las cadenas deben tener la misma longitud.

Ejemplo 3: tabla traslacional con cadena extraíble con maketrans ()

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

Salida

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

Aquí, primero, se crea el mapeo entre las dos cadenas firstString y secondString.

Luego, el tercer argumento thirdString restablece la asignación de cada carácter Noney también crea una nueva asignación para caracteres inexistentes.

En este caso, thirdString restablece el mapeo de 97 ('a') y 98 ('b') Noney también crea un nuevo mapeo para 100 ('d') mapeado a None.

Articulos interesantes...