2

my_str在 Python 中得到了一个字符串。我想要做的是:如果my_str包含一个子字符串str1,则在子字符串之后插入一个字符串str2str1并保持其余部分my_str不变。)否则,什么也不做。(假设my_str包含不超过一个子字符串str1。)

我在想的方式是:做一个for循环来查找是否str1存在于my_str

for i in range(0, len(my_str)-len(str1)):
  if my_str[i:i+len(str1)] == str1:
    my_str = my_str[0:i] + str2 + my_str[i:]

我很好奇是否有任何神奇的方法可以做到这一点。

4

2 回答 2

8

最简单的方法是str.replace()

>>> str1 = "blah"
>>> str2 = "new"
>>> "testblah".replace(str1, str1+str2)
'testblahnew'
>>> "testblahtest".replace(str1, str1+str2)
'testblahnewtest'
>>> "test".replace(str1, str1+str2)
'test'
>>> "blahtestblah".replace(str1, str1+str2)
'blahnewtestblahnew'

我们只需将原始值替换为附加到自身的新字符串,本质上是插入新值。

更多示例的关于 replace()的快速教程。

于 2012-11-28T20:30:11.317 回答
1
def myReplace(myStr, str1, str2):
    try:
        i = myStr.index(str1)
        answer = myStr[:i+len(str1)] + str2 + myStr[i+len(str1):]
        return answer
    except ValueError:
        return myStr

希望这可以帮助

于 2012-11-28T20:32:18.147 回答