Búsqueda de sitios web

Programa Python para reemplazar todas las palabras excepto la palabra dada


En este artículo, aprenderemos cómo reemplazar todas las palabras excepto la palabra dada en una cadena en Python.

Métodos utilizados

Los siguientes son los diversos métodos para realizar esta tarea:

  • Uso de funciones For Loop, split() y join()

  • Usar la comprensión de listas

Ejemplo

Supongamos que hemos tomado una cadena de entrada, una palabra de entrada y el carácter de entrada con el que se reemplazará. Ahora reemplazaremos todas las palabras en una cadena de entrada con el carácter de reemplazo de entrada dado, excepto la palabra dada usando los métodos anteriores.

Aporte

inputString = 'hello tutorialspoint python codes'
inputWord = "tutorialspoint"
replaceChar = "@"

Producción

Replacing all words of string except input word with '@':
@ tutorialspoint @ @

En este ejemplo, la palabra de entrada proporcionada es "tutorialspoint". Por lo tanto, todos los caracteres en una cadena de entrada se reemplazan con el símbolo “@” excepto la palabra dada "tutorialspoint".

Método 1: uso de las funciones For Loop, split() y join()

join() − join() es una función de cadena en Python que se utiliza para unir elementos de una secuencia que están separados por un separador de cadena. Esta función conecta elementos de secuencia para convertirlos en una cadena.

Función split(): divide una cadena en una lista. Podemos definir el separador; el separador predeterminado es cualquier espacio en blanco.

Algoritmo (pasos)

A continuación se detallan el algoritmo/pasos a seguir para realizar la tarea deseada.

  • Cree una variable para almacenar la cadena de entrada.

  • Imprime la cadena de entrada.

  • Cree otra variable para almacenar la palabra de entrada.

  • Proporcione el carácter de reemplazo (con el cual será reemplazado).

  • Utilice la función split() para dividir la cadena de entrada en la lista de palabras.

  • Utilice el bucle for para recorrer hasta la longitud de la lista de palabras utilizando la función len() (devuelve el número de elementos de un objeto).

  • Obtenga el elemento de la lista en el índice actual.

  • Utilice la declaración if condicional para comprobar si el elemento actual no es igual a la palabra de entrada (aquí tutorialspoint).

  • Reemplace el elemento actual con el carácter de reemplazo dado si la condición es verdadera.

  • Utilice la función join() para convertir la lista de palabras dada en una cadena.

  • Imprima la cadena resultante después de reemplazar todas las palabras de una cadena de entrada, excepto la palabra de entrada con el carácter de reemplazo de entrada.

Ejemplo

El siguiente programa reemplaza todas las palabras de una cadena de entrada, excepto la palabra dada, con el carácter de reemplazo de entrada (@) usando las funciones for loop, split() y join():

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input word
inputWord = "tutorialspoint"

# input replacing character (with which to be replaced)
replaceChar = "@"

# splitting input string into the list of words
wordsList = inputString.split(" ")

# traversing till the length of the words list
for index in range(len(wordsList)):

   # getting the list element at current index
   element = wordsList[index]
   
   # checking whether the current element is not equal to the input word(tutorialspoint)
   if not element == inputWord:
      
      # assigning the input replacing character to the current element
      
      # if the condition is true
      wordsList[index] = replaceChar
      
# converting words list to a string using the join() function
resultantString = " ".join(wordsList)

# printing resultant string after replacing all words of the string

# except input word with input replacing character
print("Replacing all words of string except input word with '@':\n", resultantString)

Producción

Al ejecutarse, el programa anterior generará el siguiente resultado:

Input String: hello tutorialspoint python codes
Replacing all words of string except input word with '@':
@ tutorialspoint @ @

Complejidad del tiempo − O(n)

Espacio auxiliar − O(n)

Método 2: utilizar la comprensión de listas

Comprensión de listas

Cuando desee crear una nueva lista basada en los valores de una lista existente, la comprensión de listas proporciona una sintaxis más corta y concisa.

Este es otro método para realizar esta tarea. En este método, iteramos para elementos y hacemos la tarea con una sola línea que tiene una funcionalidad similar al método anterior.

Ejemplo

El siguiente programa reemplaza todas las palabras de una cadena de entrada, excepto la palabra dada, con el carácter de reemplazo de entrada (*) usando la comprensión de listas:

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input word
inputWord = "python"

# input replacing character (with which to be replaced)
replaceChar = "*"

# Here we create a new list using list comprehension

# Where if the element(word) is equal to the input word then we add a word to the list

# Else we add replace character to the list
resultantList = [replaceChar if not element == inputWord else element for element in inputString.split()]

# Join the list of words with spaces to make it a string
resultantString = " ".join(resultantList)

# printing resultant string after replacing all words of string

# except input word with input replacing character
print("Replacing all words of string except input word with '*':\n", resultantString)

Producción

Al ejecutarse, el programa anterior generará el siguiente resultado:

Input String: hello tutorialspoint python codes
Replacing all words of string except input word with '*':
* * python *

Complejidad del tiempo − O(n)

Espacio auxiliar − O(n)

Conclusión

En este artículo estudiamos dos métodos diferentes para reemplazar todas las palabras excepto la palabra especificada. También aprendimos a utilizar la comprensión de listas para realizar cualquier tarea utilizando una sintaxis simple y concisa.

Artículos relacionados: