Foros del Web » Programando para Internet » Python »

Como Comparar dos cadenas y sustituir?

Estas en el tema de Como Comparar dos cadenas y sustituir? en el foro de Python en Foros del Web. Buenas tardes. Tengo un problema que no he podidio resolver y ojala alguien pueda ayudarme. La idea es que si tengo dos cadenas casi iguales ...
  #1 (permalink)  
Antiguo 28/09/2011, 13:31
 
Fecha de Ingreso: marzo-2009
Mensajes: 25
Antigüedad: 15 años, 8 meses
Puntos: 0
Como Comparar dos cadenas y sustituir?

Buenas tardes.

Tengo un problema que no he podidio resolver y ojala alguien pueda ayudarme. La idea es que si tengo dos cadenas casi iguales modifique una para que quede con los cambios de la otra. Me explico:

Cita:
Original: "Hola como estamos?"
Modificada: HolAc0moEstamOs
El program lo que deberia hacer es comparar la original con la modificada, lo que este igual que asi se quede, y lo diferente lo cambia/agrega para que la salida sea esta:

Cita:
Salida: HolA c0mo EstamOs?
En este caso comparo y modifico algunos caracteres(A,0,E,O) y agrego 2 espacios y "?"

Eh intento con este codigo recorriendo y comparando pero no he logrado nada.

Código Python:
Ver original
  1. #!/usr/bin/env python
  2. original = "Hola como estas?"
  3. sust = "HolAcOMOestas"
  4. out=""
  5. for i in range(0,len(original),1):
  6.     if (original[i:i+1]==sust[i:i+1]):
  7.         out += original[i:i+1]
  8.     else:
  9.         out += sust[i:i+1]
  10. print out

Sin embargo solo obtengo sust tal cual "HolAcOMOestas" =(

Ojala alguien pueda orientarme se los agradecere mucho
  #2 (permalink)  
Antiguo 28/09/2011, 15:27
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Como Comparar dos cadenas y sustituir?

Código Python:
Ver original
  1. original = "Hola como estas?"
  2. sust     = "HolAc0Moestas"
  3. out = ""
  4.  
  5. lOriginal = len(original)
  6. lSust = len(sust)
  7.  
  8. lmin = min(lOriginal, lSust)
  9. lmax = max(lOriginal, lSust)
  10.  
  11.  
  12. i = 0
  13. j = 0
  14.  
  15. while i < lmin:
  16.     if original[i] == sust[j]:
  17.         out += original[i]
  18.         j += 1
  19.     elif original[i] == ' ':
  20.         out += ' '
  21.     else:
  22.         out += sust[j]
  23.         j += 1
  24.     i += 1
  25. out += original[lmin:lmax + 1]
  26. out += sust[lmin:lmax + 1]
  27. print out
Muy simple, lo que pasa es que no tienes bien definido cuando agregas o cuando cambias. En general no tienes bien definido que va a hacer tu programa. No sabes cuando va a hacer un cambio o cuando va a agregar un carácter, tampoco tienes definido que es "casi iguales".

Por lo pronto te dejo un programa que hace lo que mas o menos pides.
  #3 (permalink)  
Antiguo 28/09/2011, 19:28
 
Fecha de Ingreso: marzo-2009
Mensajes: 25
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Como Comparar dos cadenas y sustituir?

Perdona razpeitia esque no tenia ni idea como hacer el algoritmo muchas gracias por tu ayuda quedo perfecto.

Saludos ;)

Etiquetas: cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.