我正在尝试用一根衬纸解决已经问过的问题link。但没有得到期望。
d={'Old': 'New', 'old': 'new'}
strr='Old, not old'
尝试
[ strr.replace(k,v) for k,v in d.items() if k in strr]
Out[19]: ['New, not old', 'Old, not new']
预期
New, not new
答案 0 :(得分:5)
因为您正在使用list generator来构造字符串列表,其中每个字符串仅包含词典中的一个替换项。只需使用普通循环逐字替换所有内容即可:
d={'Old': 'New', 'old': 'new'}
strr='Old, not old'
for k, v in d.items():
strr = strr.replace(k, v)
strr
将返回:
'New, not new'