Python 程序替换除给定单词之外的所有单词

pythonserver side programmingprogramming

在本文中,我们将学习如何在 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 条件 语句检查当前元素是否不等于输入单词(此处为教程点)。

  • 如果条件为真,则用给定的替换字符替换当前元素。

  • 使用 join() 函数将给定的单词列表转换为字符串。

  • 用输入替换字符替换输入字符串中除输入单词之外的所有单词后,打印结果字符串。

示例

以下程序使用 for 循环、split() 和 join() 函数将输入字符串中除给定单词之外的所有单词替换为输入替换字符 (@) –

# 输入字符串
inputString = 'hello tutorialspoint python codes'

# 打印输入字符串
print("Input String:", 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("Input String:", 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)

结论

我们在本文中研究了两种不同的方法来替换除指定单词以外的所有单词。我们还学习了如何使用列表推导式使用简单而简洁的语法来完成任何任务。


相关文章