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.

Reemplazo de cadenas en python mediante índices o en una dirección desde el inicio hasta el final.

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy un novato que acaba de empezar a aprender Python desde YouTube. Estoy tratando de hacer un programa para reemplazar los viejos números de cadena con los nuevos números de cadena y enfrentando problemas al reemplazar los números. Quiero reemplazar por índice (¿Cuál es su término técnico (no lo sé)?). Puede ir en una dirección o por índice.

mi cadena es = (001001001001001001001001001001001001001101100100110110011011001101011010011010110011011)

y quiero reemplazar 101 con 01, 1101 con 11, 1001 con 011 y 11001 con 111,

así que mi cadena reemplazada / cadena de salida será así..
(00011000110001100011000110001100110110011011010110101100110111011)
Según el método de reemplazo de cadena normal de Python, no puede funcionar. ¿Alguien puede ayudarme?

cadena = "001001001001001001001001001001001001001101100100110110011011001101011010011010110011011"

cadena = cadena.replace('101', '01').replace('1101', '11').replace('1001', '011').replace('11001', '111')

fin.close()
fin = open("2x.txt", "wt")
fin.write(cadena)
fin.close()

(00011000110001100011000110001100110110011011010110101100110111011)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como principiante en Python, estás teniendo dificultades al intentar reemplazar números de cadena antiguos por números de cadena nuevos. Quieres reemplazar ciertos patrones de manera indexada y buscas asistencia para hacerlo.

    En primer lugar, la sustitución indexada se conoce como “sustitución de subcadena”, donde reemplazas una sección de una cadena con otra cadena basada en la ubicación de su índice.

    En tu caso, puedes usar el método replace() en Python para reemplazar la cadena antigua con la cadena nueva. Sin embargo, estás enfrentando problemas ya que el método reemplaza todas las apariciones del patrón, no solo aquellas específicas para los reemplazos deseados.

    Una posible solución a este problema es usar expresiones regulares para buscar patrones y luego reemplazarlos con la nueva cadena deseada. Aquí hay un bloque de código de ejemplo que podría funcionar para tus reemplazos específicos:

    import re
    
    string = "001001001001001001001001001001001001001101100100110110011011001101011010011010110011011"
    string = re.sub(r'11001', '111', string)
    string = re.sub(r'1001', '011', string)
    string = re.sub(r'1101', '11', string)
    string = re.sub(r'101', '01', string)
    
    print(string) #outputs: 00011000110001100011000110001100110110011011010110101100110111011
    

    En el código anterior, primero importamos el módulo re para usar el método sub, que nos permite reemplazar ocurrencias de patrones específicos en una cadena.

    Luego usamos el método re.sub() para buscar patrones de cadenas antiguas y reemplazarlos con las nuevas cadenas apropiadas. Al hacer esto, nos aseguramos de no reemplazar ninguna otra ocurrencia de los patrones que no deseamos.

    Finalmente, imprimimos la cadena actualizada con todos los reemplazos.

    ¡Espero que esto te ayude con tu problema!

Comments are closed.