Python 2.7 python2.7:用各自的字符替换多个字符

Python 2.7 python2.7:用各自的字符替换多个字符,python-2.7,replace,Python 2.7,Replace,我有一个处理文本的脚本 在这个脚本中,有一个def需要用其他字符替换字符 例如: @ => [ at ] - => -- _ = (space) \ => / 我的想法是: def rrr(str): return str .replace('@', '[ at ]'). .replace('-', '--'). .replace('_', ' '). .replace('\', '/') 有更好的

我有一个处理文本的脚本

在这个脚本中,有一个def需要用其他字符替换字符

例如:

@ => [ at ]
- => --
_ = (space)
\ => /
我的想法是:

def rrr(str):
  return str
         .replace('@', '[ at ]').
         .replace('-', '--').
         .replace('_', ' ').
         .replace('\', '/')
有更好的办法吗

def rrr(s, reps):
    for src,t in reps.iteritems():
        s = s.replace(src,t)
    return s
这样使用它:

replacements = {'@' : '[ at ]',
                '-' : '--',
                '_' : ' ',
                '\\' : '/'
               }
rrr(some_string, replacements)
这样使用它:

replacements = {'@' : '[ at ]',
                '-' : '--',
                '_' : ' ',
                '\\' : '/'
               }
rrr(some_string, replacements)

我添加了大量替换,但这一个不起作用。我有@我需要用++替换,但在我的字符串中我得到:[at][at]为什么?--@是第一个,是@@second@Erik:发生这种情况的原因是在
@
之前对
@
进行了评估。如果您想处理这些情况,我建议您使用元组列表,而不是添加大量替换的DICI,但这一个不起作用。我有@我需要用++替换,但在我的字符串中我得到:[at][at]为什么?--@是第一个,是@@second@Erik:发生这种情况的原因是在
@
之前对
@
进行了评估。如果您想处理这些情况,我建议使用元组列表而不是dict