В инструкции print у меня есть две «кошки», упомянутые в моем предложении. Как мне заставить эту функцию заменить вторые «кошки»?

#python #python-3.x #function

#python #python-3.x #функция

Вопрос:

 def replace_ending(sentence, old, new):
    if old in sentence:
        i = sentence.index(old)
        new_sentence = sentence[:i]   new
        return new_sentence
    return sentence
    
#print(replace_ending("It's raining cats and cats", "cats", "dogs"))
  

Ответ №1:

Вам просто нужно использовать rindex вместо index , чтобы получить индекс последнего вхождения:

 def replace_ending(sentence, old, new):
    if old in sentence:
        i = sentence.rindex(old) # this is the only difference
        new_sentence = sentence[:i]   new
        return new_sentence
    return sentence

print(replace_ending("It's raining cats and cats", "cats", "dogs"))
  

Вывод:

Идет дождь из кошек и собак