为什么replace()在我的Python函数中不起作用?在一个班轮里

时间:2019-05-20 11:36:52

标签: python

我正在尝试用一根衬纸解决已经问过的问题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

1 个答案:

答案 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'