如何优化三个连续的str.replace()调用?

Vol*_*otz 1 python replace

expr='9subtract5equal4'

expr = expr.replace('subtract', '-')
expr = expr.replace('plus', '+')
expr = expr.replace('equal', '==')
Run Code Online (Sandbox Code Playgroud)

我觉得最后三行代码非常难看,所以我试图优化使用map和其他函数编程功能.但我找不到实现这一目标的好方法.有什么建议?

Col*_*rdo 5

你可以这样做:

def replace_all(text, dic):
  for i, j in dic.items():
    text = text.replace(i, j)
  return text

s = '9subtract5equal4'

d = {
  'subtract': '-',
  'plus': '+',
  'equal': '==',
}

s = replace_all(s, d)
Run Code Online (Sandbox Code Playgroud)