Complemento de maketrans en Python para traducir.
Para traducir tr
en Perl a Python, estoy utilizando string.maketrans
y str.translate
. Sin embargo, para la expresión en Perl:
$val =~ tr/\0-\377//c
El usuario está pidiendo el complemento de la traducción. ¿Cómo genero código de Python para eso?
davy.ai
Para generar código python para el complemento de la traducción utilizada en la expresión perl, puedes utilizar el método
string.maketrans
para crear una tabla de traducción, y luego utilizar el métodostr.translate
para aplicar la traducción complementaria. Aquí tienes un ejemplo:En este ejemplo, la
tabla_traduccion
se crea utilizandostring.maketrans('', '', '\0-\377')
, lo cual especifica una tabla de traducción con una asignación vacía para todos los caracteres en el rango\0
a\377
.Para aplicar la traducción complementaria, puedes utilizar el método
str.translate
con latabla_traduccion
y un argumento de tipo string'\0-\377'
. El string'\0-\377'
especifica qué caracteres complementar en la traducción.Alternativamente, puedes utilizar una función lambda para invertir la traducción. La función lambda toma un único argumento
c
, el cual representa un único carácter, y devuelveNone
si el carácter está en el rango\0
a\377
, de lo contrario devuelve el carácter sin modificar. Esto logra el mismo resultado que el argumento de tipo string'\0-\377'
.