我有一个像下面这样的字典
word_dict = {'a': 'a1', 'winter': 'cold', 'summer': 'hot'}
我有一个这样的字符串:
data = "It's winter not summer. Have a nice day"
我想做的是将 data
中的单词 a 替换为 a1
,将 winter 替换为 cold
等。我确实尝试使用以下代码:
for word in word_dict:
data = data.replace(word, word_dict[word])
但它失败了,因为它替换了子字符串(data
的子字符串,而不是单词)。事实上,单词 Have
被替换为 Ha1ve
。
结果应该是:
data = "It's cold not hot. Have a1 nice day"
最佳答案
你可以使用 re.sub
。 \b
匹配单词字符和非单词字符的单词边界。我们需要使用单词边界来匹配一个精确的单词字符串,否则它也会匹配 day
a
>>> word_dict = {'a': 'a1', 'winter': 'cold', 'summer': 'hot'}
>>> data = "It's winter not summer. Have a nice day"
>>> for word in word_dict:
data = re.sub(r'\b'+word+r'\b', word_dict[word], data)
>>> data
"It's cold not hot. Have a1 nice day"
关于python - 用字符串中的单词替换单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28363797/