Программа Python для замены всех слов, кроме данного слова
В этой статье мы научимся заменять все слова, кроме данного слова, в строке в Python.
Используемые методы
Ниже приведены различные методы выполнения этой задачи:
Использование функций цикла For, Split() и join()
Использование понимания списков
Пример
Предположим, мы взяли входную строку, входное слово и входной символ, которым необходимо заменить. Теперь мы заменим все слова во входной строке заданным входным символом замены, ожидая данного слова, используя вышеуказанные методы.
Вход
inputString = 'hello tutorialspoint python codes'
inputWord = "tutorialspoint"
replaceChar = "@"
Выход
Replacing all words of string except input word with '@':
@ tutorialspoint @ @
В этом примере заданное входное слово — «tutorialspoint». Следовательно, все символы во входной строке заменяются символом “@”, за исключением данного слова «tutorialspoint».
Метод 1. Использование функций цикла For, Split() и join().
join() — join() — это строковая функция в Python, которая используется для объединения элементов последовательности, разделенных разделителем строк. Эта функция соединяет элементы последовательности для преобразования в строку.
Функция split() — разбивает строку на список. Мы можем определить разделитель; разделителем по умолчанию является любой пробел.
Алгоритм (шаги)
Ниже приводится алгоритм/шаги, которые необходимо выполнить для выполнения желаемой задачи.
Создайте переменную для хранения входной строки.
Распечатайте входную строку.
Создайте еще одну переменную для хранения входного слова.
Укажите символ замены (которым необходимо заменить).
Используйте функцию split(), чтобы разделить входную строку на список слов.
Используйте цикл for для перемещения до длины списка слов с помощью функции len() (возвращает количество элементов в объекте).
-
Получите элемент списка по текущему индексу.
Используйте оператор if Conditional, чтобы проверить, не равен ли текущий элемент входному слову (здесь обучающие материалы).
Замените текущий элемент заданным заменяющим символом, если условие истинно.
Используйте функцию join(), чтобы преобразовать заданный список слов в строку.
Напечатайте результирующую строку после замены всех слов входной строки, кроме входного слова, на входной заменяющий символ.
Пример
Следующая программа заменяет все слова входной строки, кроме данного слова, на входной символ замены(@), используя функции цикла for, Split() и 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)
Выход
При выполнении вышеуказанная программа сгенерирует следующий вывод:
Input String: hello tutorialspoint python codes
Replacing all words of string except input word with '@':
@ tutorialspoint @ @
Временная сложность — O(n)
Вспомогательное пространство — O(n)
Метод 2: использование понимания списка
Понимание списка
Если вы хотите создать новый список на основе значений существующего списка, понимание списка обеспечивает более короткий/лаконичный синтаксис.
Это еще один метод выполнения этой задачи. В этом методе мы перебираем элементы и выполняем задачу с помощью однострочника, функциональность которого аналогична предыдущему методу.
Пример
Следующая программа заменяет все слова входной строки, кроме данного слова, на входной символ замены (*), используя понимание списка:
# 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)
Выход
При выполнении вышеуказанная программа сгенерирует следующий вывод:
Input String: hello tutorialspoint python codes
Replacing all words of string except input word with '*':
* * python *
Временная сложность — O(n)
Вспомогательное пространство — O(n)
Заключение
В этой статье мы изучили два разных метода замены всех слов, кроме указанного. Мы также узнали, как использовать понимание списков для выполнения любых задач, используя простой и лаконичный синтаксис.