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.

¿Cómo reemplazo más de un carácter en una cadena en Python?

Disculpa de antemano, apenas estoy comenzando en programación.

Estoy teniendo más dificultades con este programa de las que pensé que tendría. Echa un vistazo:

string = str(input("Ingresa un string: "))

delimiter = input("Ingresa los delimitadores: ")


s = list(string)

d = list(delimiter)


def split(string, delimiter):

    for i in s:
        if i in d:
            x = string.replace(i, " ")

    print(x)


split(string, delimiter)

Y la salida que se supone que debo obtener es:

Ingresa un string: Welcome to Python

Ingresa los delimitadores: oe
W lc m t Pyth n

Aquí está el problema: si ingreso más de un carácter, el programa solo pasará el último carácter que ingresé y ignorará los demás.

Aquí está la salida que estoy obteniendo:

 Ingresa un string: Welcome to Python

 Ingresa los delimitadores: oe
 Welc me t  Pyth n

¡Apreciaré cualquier ayuda brindada! ¡Gracias de antemano!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¡Hola!

    Parece ser que el problema está en la función split. Tu código está reemplazando el delimitador uno por uno en lugar de reemplazar todas las instancias del delimitador a la vez.

    Para solucionar esto, puedes utilizar la función split() junto con la función join() para crear una nueva cadena con espacios en lugar del delimitador.

    Aquí tienes una versión actualizada de tu código:

    cadena = input("Ingrese una cadena: ")
    delimitador = input("Ingrese los delimitadores: ")
    
    def split(cadena, delimitador):
        for delim in delimitador:
            cadena = cadena.replace(delim, " ")
        print(cadena)
    
    split(cadena, delimitador)
    

    Con esto, deberías obtener la salida correcta independientemente de cuántos delimitadores ingreses.

    ¡Hazme saber si tienes alguna pregunta!

Comments are closed.