我必须创建一个代码,用于替换字符串中的一个字符/字母。
我得到的例子是:
string_substituting_char('abcdeeaa', 'c')
应该返回:
'ab$deeaa'
我知道要使用哪些代码,所以我使用了这段代码,但我只知道替换字符串中所有字母的代码:
def string_substituting_char (st, ch):
for ch in st:
st = st.replace(ch, '$')
return st
我拥有并使用过的代码(它取代了所有字符)
我想知道应该在代码中添加什么,以便它只更改字符串中的一个特定字符。
答案 0 :(得分: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'
>>>
或者,如果您只想替换第一次出现的字符,可以将1
传递给count
参数:
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'
>>>
答案 1 :(得分:0)
如果要替换给定字符的每个实例,请使用:
>>> def string_substituting_char (st, ch):
... return st.replace(ch, '$')
...
>>> string_substituting_char('abccdefccsfdds', 'c')
'ab$$def$$sfdds'
答案 2 :(得分: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'