이 문제는 문자열을 반대로 하고, 바꿀 문자열을 반대로 하고, 문자열을 바꿀 문자열의 반대 방향으로 바꾸고, 마지막으로 문자열을 반대로 하여 결과를 얻음으로써 해결할 수 있습니다.
간단한 슬라이싱 표기법([::-1])으로 문자열을 뒤집을 수 있습니다. 문자열을 바꾸려면 str.replace(old, new, count)를 사용할 수 있습니다. 예를 들어,
def rreplace(s, old, new): return (s[::-1].replace(old[::-1],new[::-1], 1))[::-1] rreplace('Helloworld, hello world, hello world', 'hello', 'hi')
이것은 출력을 줄 것입니다:
'Hello world,hello world, hi world'
이를 수행할 수 있는 또 다른 방법은 문자열을 이전 문자열에서 한 번 역으로 분할하고 새 문자열과 목록을 결합하는 것입니다. 예를 들어,
def rreplace(s, old, new): li = s.rsplit(old, 1) #Split only once return new.join(li) rreplace('Helloworld, hello world, hello world', 'hello', 'hi')
이것은 출력을 줄 것입니다:
'Hello world,hello world, hi world'