如何更改string为result?
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)
谢谢。
如果字典中的键只能拆分一个单词,则按get和join反向映射:
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)