如何用 Python 列表中的内容替换字符串中找到的单词

Posted

技术标签:

【中文标题】如何用 Python 列表中的内容替换字符串中找到的单词【英文标题】:How to replace a word found in a string with what is in the list in Python 【发布时间】:2018-08-01 19:23:04 【问题描述】:

我的字符串如下:

word = "Continue: Lifetime Benefits in Running, Volume 1, Issue 1, February 2018"

我的清单是:

italic_list = ['Continue', ': Lifetime Benefits in Running', ' February 2018']

我想用列表中的内容更改字符串中找到的单词,并带有附加标签。

输出应该是这样的:

<p>
    <italic>Continue: Lifetime Benefits in Running</italic>, Volume 1, Issue 1, <italic>February 2018</italic>
</p>

这是我的代码:

word = "Continue: Lifetime Benefits in Running, Volume 1, Issue 1, February 2018"

italic_list = ['Continue', ': Lifetime Benefits in Running', ' February 2018']

ital = ''.join(italic_list)

if ital in word:
    word = word.replace(ital, "<italic>" + ital + "</italic>")

如果列表中的所有项目都在一个连续的单词中,则该代码将起作用。但是这个代码的问题是,如果有某个词没有与前一个项目一起成功。

我希望有更好的方法来解决这个问题。

非常感谢!

【问题讨论】:

欢迎来到 ***!到目前为止,您尝试过什么吗? *** 不是免费的代码编写服务,希望您能try to solve your own problem first。请更新您的问题以显示您已经尝试过的内容,并在minimal, complete, and verifiable example 中展示您面临的特定问题。欲了解更多信息,请参阅how to ask good questions,并拨打tour of the site 【参考方案1】:

不要加入。

它将列表元素合并为单个字符串。您有 3 个可以独立检查的短语。现在你有一个字符串。

您想要做的是检查是否有任何来自 italic_list 的短语一个接一个出现在输入字符串中。

在 python 中,您可以使用循环来做到这一点。只需遍历 italic_list,并为每个元素检查输入字符串中是否存在元素,如果存在,则将该部分替换为具有额外元素的部分。

【讨论】:

以上是关于如何用 Python 列表中的内容替换字符串中找到的单词的主要内容,如果未能解决你的问题,请参考以下文章

如何用包含空格的字符串替换列表中的项目?

python正则表达式如何用已知字符串(如"aaa")替换文件中匹中的分组内容,不是匹中的全部,而是其中一个组

如何用元组列表替换列表中正则表达式匹配的模式?

请教各位大神,如何用python提取出两幅图像中不同的部分

如何用python语言编能将字符串中的每个字符的ASCII码加20后输出对应字符的程序?

mysql 中如何用update替换指定字符后面的内容