Python - for-loop,替换字符串中的字母

时间:2013-10-31 12:28:47

标签: python

我已经编写了一个替换'X'的所有实例的函数,但是我如何才能使它只在从开始到停止的时间间隔内替换它?

def replaceSegment(string, replace, start, stop):
    newstring = ''
    for x in string:
        if x == 'X':
            newstring = newstring + replace
        else:
            newstring = newstring + x
    return newstring
  

编写一个函数,replaceSegment,它接受一个字符串,str和另一个   字符串,替换和两个整数,启动和停止。该函数应该返回一个   新字符串,其中原始字符串中出现所有子字符串“X”,   str,在从索引开始到不包括索引停止的范围内,是   替换为替换字符串。

     

执行相同或类似任务的内置函数或模块,   不能用于此任务。但是,允许使用len()函数。

     

示例:

ReplaceSegment >>> ("HXej! BalXoo X", "hope", 3, 7)
'HXej! Hope balXoo! ')

1 个答案:

答案 0 :(得分:0)

startstop视为将字符串分为三部分:

  • 第一部分从字符串的开头开始,在start
  • 之前结束
  • 第二个从start开始,在stop之前结束,
  • 第三个从stop开始,直到字符串结束。

所以,只有第二部分会改变。

如果您可以成功地将这三个部分隔离开来,则可以将newstring作为第一部分启动,仅将循环应用于第二部分,然后在最后添加最后一部分。它看起来像这样:

def replaceSegment(string, replace, start, stop):
    # before  = the part of string before start
    # segment = the part of string from start to before stop
    # after = the part of the string from stop to the end of string
    newstring = before
    for x in segment:
        if x == 'X':
            newstring = newstring + replace
        else:
            newstring = newstring + x

    newstring += after
    return newstring