编写一个函数,从另一个字符串中删除第一次出现的字符串。

时间:2015-04-23 12:49:35

标签: python string

对于上述问题,我尝试了以下代码。

def removesubstr(substr,x):
    a = len(substr)
    m = ""
    count = 0
    b = 0
    c= len(x)
    while count <c:
        for i in x:
            if x[b:b+a] == substr:
                count = count +1
                m =m +""
                b=b+a
            else:
                b= b+1
                m = m + i
                count = count +1
        return m

print (removesubstr('ara','jayaram'))

我希望获得像jaym&#39;这样的输出。但我意识到,因为它循环3个步骤。 python仍然将最后3个字符[4:7]视为有效并输出&#39; jayram&#39;。如何改变以获得jaym&#39;?

3 个答案:

答案 0 :(得分:1)

假设你应该自己这样做,而不是使用内置的库函数......

你似乎比你需要的更复杂,你还应该使用更有意义的变量名。 abm都毫无意义。

你想要这样的东西:

sublen = len(substr)
strlen = len(x)
loop = 0
while loop+sublen < strlen:
    loop = loop +1;
    if x[loop:loop+sublen] == substr:
         return x[0:loop]+x[loop+sublen:strlen]

return x

答案 1 :(得分:1)

tempstr='jayaram'
tempstr=tempstr.replace("ara", "",1);

你可以使用python inbuilt replace.you可以用空白替换它

答案 2 :(得分:0)

def remove(s, text):
  if text.find(s) == -1:
        return text
  else:
    new = text[0:text.find(s)]+text[text.find(s)+len(s):len(text)]
    return new