从列表中移除完全匹配的词

-3 投票
2 回答
2130 浏览
提问于 2025-05-10 23:45
"I am a human"

我想从上面的字符串中去掉字母“a”,这样字符串就变成:

"I am human"

我用了以下代码,效果很好。

plural = input("Enter a string: ")
processed = plural.split()

processed.remove("a")

不过,如果句子里没有“a”,就会出现错误。

"I am not an elephant"

在这种情况下,我希望程序能够忽略这个错误。我该怎么做呢?

相关文章:

  • 暂无相关问题
暂无标签

2 个回答

1

根据文档,当列表中没有你要删除的值时,remove()这个方法会报错。

你知道这种情况可能会发生,所以可以通过捕捉这个错误来处理:

try:
    processed.remove("a")       
except ValueError:
    pass # happens.

不过,使用正则表达式会更好,比如re.sub()

这样当输入的内容有些意外时,就不会出错了:

plural = "I am a human"
value = re.sub(' a ', ' ', plural) # Replace "space + 'a' letter + space" with one space
2

这只是根据文本中匹配的模式进行分割。其实用正则表达式会更好。

" ".join("I am a human".split(" a "))

或者

"I am a human".replace(" a "," ")

撰写回答