es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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étodo str.translate para aplicar la traducción complementaria. Aquí tienes un ejemplo:

    import string
    
    # Crear la tabla de traducción utilizando string.maketrans
    tabla_traduccion = string.maketrans('', '', '\0-\377')
    
    # Aplicar la traducción complementaria utilizando str.translate
    val_complemento = val.translate(tabla_traduccion, '\0-\377')
    
    # Alternativamente, puedes utilizar una función lambda para invertir la traducción
    val_complemento = val.translate(tabla_traduccion, lambda c: c if c in '\0-\377' else None)
    

    En este ejemplo, la tabla_traduccion se crea utilizando string.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 la tabla_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 devuelve None 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'.

Comments are closed.