Если вы знаете, хотите ли вы заменить первое вхождение x
, или второе, или третье, или последнее, вы можете объединить str.find
(или str.rfind
, если хотите начать с конца строки) с нарезкой и str.replace
, подающей символ, который вы хотите заменить, в первый метод столько раз, сколько необходимо, чтобы получить позицию непосредственно перед символом, который вы хотите заменить (для конкретного предложения, которое вы предлагаете, только один), затем разделите строку на две части и замените только один экземпляр во втором фрагменте.
Пример стоит тысячи слов, или они так говорят. Далее я предполагаю, что вы хотите заменить (n
+ 1) -е вхождение символа.
>>> s = "This is an Example. Thxs code is not what I'm having problems with."
>>> n = 1
>>> pos = 0
>>> for i in range(n):
>>> pos = s.find('x', pos) + 1
...
>>> s[:pos] + s[pos:].replace('x', 'i', 1)
"This is an Example. This code is not what I'm having problems with."
Обратите внимание, что вам нужно добавить смещение к pos
, в противном случае вы замените вхождение x
, которое вы только что нашли.