Как заменить 2-ю итерацию в строке — Python

#python #string

#python #строка

Вопрос:

Я пытаюсь удалить слово из строки, но только в том случае, если это второе слово. Вот один из примеров:

Я попробовал удалить и заменить. Нарезка не будет работать, потому что Pred может не находиться в одном и том же месте каждый раз.

 # Complete the function to remove the word PREDS from the given string
# ONLY if it's not the first word and return the new string
def removePREDS(mystring):
    return mystring.replace("PREDS", ' ')

# expected output: PREDS Rocks
print(removePREDS('PREDS Rocks'))

# expected output: Hello, John
print(removePREDS('Hello, PREDSFan'))
 

Я могу удалить оба Preds и первый, но не могу понять, как удалить второй

Комментарии:

1. Только второй или заменить все повторы, кроме первого?

Ответ №1:

Функция:

 def remove_if_not_starts_from(src, substr):
    return src if src.startswith(substr) else src.replace(substr, '')
 

Использование:

 str1 = 'Lorem ipsum'
str2 = 'ipsum Loremipsum'
word = 'Lorem'

print('{} -> {}'.format(str1, remove_if_not_starts_from(str1, word)))
print('{} -> {}'.format(str2, remove_if_not_starts_from(str2, word)))
 

Вывод:

 Lorem ipsum -> Lorem ipsum
ipsum Loremipsum -> ipsum ipsum
 

Комментарии:

1. Вот и все, я не думал об идее startswith. Большое вам спасибо