miércoles, 30 de diciembre de 2015

T2 LOS MÉTODOS STR.MAKETRANS() Y STR.TRANSLATE(), DOS AMIGOS MUY BIEN AVENIDOS.

COSTA NORTE DE TENERIFE DESDE LAS LADERAS DE EL SAUZAL, CON EL ACANTILADO DE ACENTEJO AL FONDO
     Los métodos de las strings str.maketrans() y str.translate(), y por este orden, son interdependientes, conjugándose mutuamente para obtener un resultado. Con el primero, cuya traducción libre podría ser precísamente ésa, "hacer una traducción", podemos pasar dos argumentos en formato de tabla ("TABLE") aunque esto, salvo en el caso de que vayamos a hacer una traducción profunda, en toda regla, resulta muy laxo, como podremos ver en los ejemplos. En ambos casos deben ser cadenas de texto, strings, siendo el primero de los argumentos la cadena donde se encuentran los caracteres literarios que vamos a traducir; y el segundo, los caracteres literarios a los que deben traducirse los primeros. Contamos, además, con la opción de pasar un tercer argumento que nos permite eliminar caracteres si así lo deseamos. 
El primer y segundo argumento deben tener la misma longitud para que la traducción pueda llevarse felizmente a cabo, por lo que podemos recurrir a la función len() como controlador. El método str.translate(), "traducción" lleva como argumento al propio método str.maketrans(), por lo que conviene asignar siempre a este último una variable para volverlo más manejable, aplicándosele a la string sobre la que invoquemos el método str.translate(), devolviéndonos así la susodicha cadena con los caracteres literales modificados de acuerdo a nuestra propuesta de traducción.
En el caso de str.maketrans(), no introducimos una cadena concreta sino que, o bien dejamos una cadena vacía, " ",  o bien la llamamos por el nombre de tipo de objeto, str, dado que se trata de un método estático que funciona a partir de su condición como argumento de str.translate(), y de aquí que habláramos al comienzo de esta entrada de interdependencia entre ambos.
Para finalizar, en el caso de traducciones más complejas tenemos a nuestra disposición el módulo codecs de la librería estándar de Python.


Y ahora otro ejemplo con tercer argumento para str.maketrans():


VISTA DEL TEIDE DESDE EL MACIZO DE TENO,  PRÓXIMO AL BARRANCO DE GUERGUES, NOROESTE DE TENERIFE.



2 comentarios: