Python程序:替换除了给定单词以外的所有单词
本文将介绍如何在Python中替换字符串中除给定单词以外的所有单词。
使用的方法
以下是完成此任务的各种方法:
- 使用for循环,split()和join()函数
-
使用列表推导式
示例
假设我们已经输入了一个 输入字符串 ,输入单词和要替换的输入字符。现在,我们将使用上述方法将输入字符串中的所有单词替换为给定的输入替换字符,除了给定单词。
输入
inputString = 'hello tutorialspoint python codes'
inputWord = "tutorialspoint"
replaceChar = "@"
输出
用“@”替换除输入单词外的所有字符串:
@ tutorialspoint @ @
在此示例中,给定的输入单词为“ tutorialspoint ”。因此,输入字符串中的所有字符都被替换为 “@” 符号,除了给定的单词“tutorialspoint”。
方法1:使用for循环,split()和join()函数
join() − join()是Python中的一个字符串函数,用于连接由字符串分隔符分隔的序列元素。此函数将序列元素连接以转换为字符串。
split() 函数 − 将字符串分割成列表。我们可以定义分隔符;默认分隔符是任何空格。
算法(步骤)
以下是执行所需任务的算法/步骤:
- 创建一个变量以存储 输入字符串 。
-
输出输入字符串。
-
创建另一个变量以存储 输入单词 。
-
给出 替换字符 (要替换的字符)。
-
使用 split() 函数将输入字符串拆分为单词列表。
-
使用for循环遍历单词列表的长度,使用 len() 函数(返回对象中的项目数)。
-
获取当前索引处的列表元素。
-
使用 if条件语句 检查当前元素是否不等于输入单词(此处为tutorialspoint)。
-
如果条件成立,则用给定替换字符替换当前元素。
-
使用 join()函数 将给定的单词列表转换为字符串。
-
输出替换输入字符串中除输入单词以外的所有单词的结果字符串。
示例
以下程序使用for循环、split()和join()函数将输入字符串中除给定单词以外的所有单词替换为输入的替换字符(@):
# 输入字符串
inputString = 'hello tutorialspoint python codes'
# 打印输入字符串
print("输入的字符串为:", inputString)
# 输入的单词
inputWord = "tutorialspoint"
# 输入的替换字符(用于替换单词)
replaceChar = "@"
# 将输入字符串拆分为单词列表
wordsList = inputString.split(" ")
# 遍历单词列表长度
for index in range(len(wordsList)):
# 获取当前索引处的单词列表元素
element = wordsList[index]
# 检查当前元素是否不等于输入单词(tutorialspoint)
if not element == inputWord:
# 在当前元素上分配输入替换字符
# 如果条件为真
wordsList[index] = replaceChar
# 使用join()函数将单词列表转换为字符串
resultantString = " ".join(wordsList)
# 替换字符串中除输入单词以外的所有单词
# 用输入替换字符
print("替换字符串中除输入单词以外的所有单词为'@':\n", resultantString)
输出
执行上述程序将生成以下输出结果 –
输入的字符串为: hello tutorialspoint python codes
替换字符串中除输入单词以外的所有单词为'@':
@ tutorialspoint @ @
时间复杂度 − O(n)
空间复杂度 − O(n)
方法2:使用列表生成式
列表生成式
当您希望基于现有列表的值构建新列表时,列表生成式提供了一种更短/简洁的语法。
这是另一种做这个任务的方法。 在此方法中,我们遍历元素并使用与前一种方法类似的一行代码完成任务。
示例
以下程序使用列表推导式将输入字符串中除给定单词以外的所有单词替换为输入替换字符 (*) –
# 输入字符串
inputString = 'hello tutorialspoint python codes'
# 打印输入字符串
print("输入的字符串为:", inputString)
# 输入的单词
inputWord = "python"
# 输入的替换字符(用于替换单词)
replaceChar = "*"
# 在此处我们使用列表生成式创建新列表
# 如果元素(单词)等于输入单词,则将单词添加到列表中
# 否则,将代替字符添加到列表中
resultantList = [replaceChar if not element == inputWord else element for element in inputString.split()]
# 用空格连接单词列表以将其转换为字符串
resultantString = " ".join(resultantList)
# 替换字符串中除输入单词以外的所有单词
# 使用输入替换字符
print("将字符串中除输入单词以外的所有单词替换为'*':\n", resultantString)
输出
在执行上述程序后将生成以下输出 –
输入的字符串为: hello tutorialspoint python codes
将字符串中除输入单词以外的所有单词替换为'*':
* * python *
时间复杂度 − O(n)
空间复杂度 − O(n)
结论
本文介绍了两种不同的方法来替换除指定单词以外的所有单词。 我们还学习了如何使用列表推导式使用简单简洁的语法完成任何任务。