Python替换在代码中不起作用

时间:2017-09-24 16:51:09

标签: python

给定一个字符串s,返回一个字符串

其第一个字符的所有出现

已更改为' *',但不要更改

第一个字符本身。

e.g。 '多路重合'收益率' ba ** le'

假设字符串长度为1或更长。

def fix_start(s):
MyString = s[1:]
for charr in MyString:
    if charr == s[0]:
        s.replace(charr,'*')
return s

我所做的错误

2 个答案:

答案 0 :(得分:1)

当用s.replace替换字符串s中的字符时,这将返回一个新字符串(并且不会更新s本身)。然后,你应该添加s = s.replace(...)。 您也可以写为:

def fix_start(s): 
    return s[0]+s[1:].replace(s[0],'*')

res=fix_start('babble') 
print(res)

` 这样你就不必对字符串的所有字符进行for循环。

答案 1 :(得分:0)

你可以用一行来做。尝试:

def fix_start(s):
    return s[0] + s[1:].replace(s[0], '*')