如何在Python中用字典替换字符串?

Joh*_*ohn -1 python

如何更改stringresult

string = 'John and Mary are good friends'
d = {'John': 'Sam', 'Mary': 'Ann', 'are': 'are not'}

result = 'Sam and Ann are not good friends'
Run Code Online (Sandbox Code Playgroud)

谢谢。

jez*_*ael 5

如果字典中的键只能拆分一个单词,则按getjoin反向映射:

a = ' '.join(d.get(x, x) for x in string.split())
print (a)
Sam and Ann are not good friends
Run Code Online (Sandbox Code Playgroud)

如果可能的话,也可以使用多个单词边界,以避免替换子字符串:

import re

string = 'John and Mary are good friends'
d = {'John and': 'Sam with', 'Mary': 'Ann', 'are good': 'are not'}

pat = '|'.join(r"\b{}\b".format(x) for x in d.keys())
a = re.sub(pat, lambda x: d.get(x.group(0)), string)
print (a) 
Sam with Ann are not friends
Run Code Online (Sandbox Code Playgroud)