2016-03-11 11 views
1

我有一個腳本,該腳本中有一個需要與他人python2.7:各自的字符替換多個字符

例如替換字符一個高清工序文

@ => [ at ] 
- => -- 
_ = (space) 
\ =>/

我的想法是要做到:

def rrr(str): 
    return str 
     .replace('@', '[ at ]'). 
     .replace('-', '--'). 
     .replace('_', ' '). 
     .replace('\', '/') 

有沒有更好的辦法?

回答

0
def rrr(s, reps): 
    for src,t in reps.iteritems(): 
     s = s.replace(src,t) 
    return s 

使用這種方式:

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

我加入噸的替代品,但這個不起作用。我有@@我需要用++替換,但在我的字符串中,我得到了:[at] [at]爲什麼? - @是第一個,@@是第二個 – Erik

+0

@Erik:發生這種情況是因爲@ @在@@'之前被評估過。如果你想處理這些情況,我建議使用元組列表而不是字典 – inspectorG4dget