我在Python中给了一个字符串my_str
。我想要做的是:如果my_str
包含子字符串str1
,则在子字符串str2
后面插入一个字符串str1
(并保留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:]
我很好奇是否有任何神奇的方法可以做到这一点。
答案 0 :(得分: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'
我们只需将原始值替换为附加到自身的新字符串,基本上插入新值。
替换()上的quick tutorial以获取更多示例。
答案 1 :(得分: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
希望这有帮助