替换字符串中的单个字符

时间:2014-11-16 03:26:32

标签: python string replace

我必须创建一个代码,用于替换字符串中的一个字符/字母。

我得到的例子是:

string_substituting_char('abcdeeaa', 'c') 

应该返回:

'ab$deeaa'

我知道要使用哪些代码,所以我使用了这段代码,但我只知道替换字符串中所有字母的代码:

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

我拥有并使用过的代码(它取代了所有字符)

我想知道应该在代码中添加什么,以便它只更改字符串中的一个特定字符。

3 个答案:

答案 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'