2014-11-16 66 views
1

我必須創建一個代碼來替換字符串中的一個字符/字母。替換字符串中的單個字符

的例子,我得到的是這樣的:

string_substituting_char('abcdeeaa', 'c') 

應返回:

'ab$deeaa' 

我知道要使用的代碼,所以我用這個代碼,但我只知道代碼替換字符串中的所有字母:

def string_substituting_char (st, ch): 
    for ch in st: 
     st = st.replace(ch, '$') 
    return st 

我已經使用過的代碼(它取代了所有字符)

我想知道應該添加到代碼中,以便它只改變字符串中的一個特定字符。

回答

1

只需調用的結果返回給str.replace

def string_substituting_char(st, ch): 
    return st.replace(ch, '$') 

演示:

>>> def string_substituting_char(st, ch): 
...  return st.replace(ch, '$') 
... 
>>> string_substituting_char('abcdeeaa', 'c') 
'ab$deeaa' 
>>> 

或者,如果你想只替換字符的第一次出現,你可以通過1count參數:

def string_substituting_char(st, ch): 
    return st.replace(ch, '$', 1) 

演示:

>>> def string_substituting_char(st, ch): 
...  return st.replace(ch, '$', 1) 
... 
>>> string_substituting_char('abcabc', 'c') 
'ab$abc' 
>>> 
0

如果要替換給定字符使用的每一個實例是:

>>> def string_substituting_char (st, ch): 
...  return st.replace(ch, '$') 
... 
>>> string_substituting_char('abccdefccsfdds', 'c') 
'ab$$def$$sfdds' 
0

使用正則表達式

import re 

def string_sub (str, ch): 
    return "$".join(re.findall("[^" + ch + "]+", str)) 

演示:

>>> string_sub("ello this is aea sa s as", "e") 
'$llo this is a$a sa s as'