Foros del Web » Programando para Internet » Python »

¿Como se reemplaza un determinado carácter en Python?

Estas en el tema de ¿Como se reemplaza un determinado carácter en Python? en el foro de Python en Foros del Web. Hola perdón si la pregunta es demasiado tonta y no se adecua a este foro, pero hace poco que estoy leyendo el manual 'Python para ...
  #1 (permalink)  
Antiguo 09/02/2011, 10:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 11 años, 9 meses
Puntos: 0
¿Como se reemplaza un determinado carácter en Python?

Hola perdón si la pregunta es demasiado tonta y no se adecua a este foro, pero hace poco que estoy leyendo el manual 'Python para todos' y me surgió la duda de como se hace lo siguiente:

//Esto sería en Pascal (**** Tabulaciones)

var
*****a : string;
begin
*****a := 'Surfea en la hala';
*****a[14] := 'o';
*****writeln(a); //Mostraria Surfea en la hola
end.

#Ahora en Python para hacer eso, la única manera que conozco, es la siguiente:

mensaje = "Surfea en la hala"
mensaje = mensaje[:14] + "o" + mensaje[15:]
print mensaje #Mostraria Surfea en la hola
#No puedo usar replace("a","o",2) porque me modificaría la 'a' de surfea también
#Y lo siguiente me devuelve error: mensaje[14] = "o"

¿Es está la única manera de hacerlo? O hay alguna forma más sencilla. Esta ultima que les mencioné (la que da error) pensé que iba a funcionar ya que tengo entendido que String es como una secuencia, pero se ve que no se puede así.

Bueno desde ya gracias por su ayuda, y disculpen mi preguntonta pero de verdad que me gustaría aprender Python. Es muy sencillo y realmente da gusto programar con él. Y ni hablar de su comunidad ;)
  #2 (permalink)  
Antiguo 09/02/2011, 10:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 17 años, 8 meses
Puntos: 1360
Respuesta: ¿Como se reemplaza un determinado carácter en Python?

Bueno lo que pasa es que a diferencia de muchos otros lenguajes las cadenas o strings en python son inmutables. Lo que significa que no le puedes hacer modificaciones a la cadena si no que tienes que crear una nueva cadena con los cambios que le pidas o bien trabajarlo como una lista.

Ejemplos:
Código Python:
Ver original
  1. s1 = "Hola mundo"
  2. print s1
  3. print s1[3] #Imprimira a
  4. print s1[3] = 'b' #Error

Lo que puedes hacer es:
Jugar con los indices
Código Python:
Ver original
  1. s1 = "Hola mundo"
  2. indice = 3
  3. print s1[0:indice] + 'b' + s1[indice+1:]

Tratarlo como una lista:
Código Python:
Ver original
  1. s1 = "Hola mundo"
  2. print s1 #Hola mundo
  3. s1 = list(s1)
  4. print s1 #['H', 'o', 'l', 'a', ' ', 'm', 'u', 'n', 'd', 'o']
  5. s1[3] = 'b'
  6. print ''.join(s1)
  #3 (permalink)  
Antiguo 09/02/2011, 12:17
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 11 años, 9 meses
Puntos: 0
De acuerdo Respuesta: ¿Como se reemplaza un determinado carácter en Python? [RESUELTO]

El ultimo ejemplo que me diste es justo lo que buscaba. Sabia que se podía convertir una cadena de texto en una lista pero lo de Join nunca me lo hubiera imaginado, de verdad que los desarrolladores de Python tienen todo pensado, es una de las ventajas del código abierto supongo.

Muchas gracias!!!!
  #4 (permalink)  
Antiguo 09/02/2011, 12:54
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 17 años, 8 meses
Puntos: 1360
Respuesta: ¿Como se reemplaza un determinado carácter en Python?

Ah se me olvido la manera mas pythonesca posible es:

Código Python:
Ver original
  1. from UserString import MutableString
  2. s = MutableString("Hola mundo")
  3. print s
  4. s[0] = 'a'
  5. print s

Para mas info checar la documentación

Etiquetas: determinado
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 13:18.