Начните с поиска первого вхождения, затем замените после этого момента. Также установите count для str.replace
, чтобы обеспечить замену только второго вхождения.
text = "It's raining cats and cats"
old, new = 'cats', 'dogs'
offset = text.index(old) + 1
a = text[:offset] + text[offset:].replace(old, new, 1)
print(a) # -> "It's raining cats and dogs"
Ps Я также превратил это в супер-универсальную библиотечную функцию, которую я, вероятно, буду publi sh на GitHub позже. Следуйте этому ответу для обновления, я думаю.