Повторение 3 раза
Если вы имеете в виду, что строка «Triple» должна рассматриваться как ключевое слово, значение следующей строки которого должно быть заменено на себя втрое, то следующее может выполнить то, что вы хотите:
def tripler(s):
triples = 0
s = [ss.strip() for ss in s.split()][::-1]
for i in range(len(s) - 1):
if s[i - triples + 1] == 'Triple':
s[i - triples] *= 3
del s[i - triples + 1]
triples += 1
return ' '.join(s[::-1])
Динамические повторы
Для повторения аргумента любое количество раз можно использовать словарь с разными ключевыми словами и соответствующими значениями:
repeat_keywords = {'Double':2, 'Triple':3}
def repeater(s):
repeats = 0
s = [ss.strip() for ss in s.split()][::-1]
for i in range(len(s) - 1):
if s[i - repeats + 1] in repeat_keywords:
s[i - repeats] *= repeat_keywords[s[i - repeats + 1]]
del s[i - repeats + 1]
repeats += 1
return ' '.join(s[::-1])
Входы :
1. Двойной x Тройной y
2. Двойной тройной y
3. Трехместный x Двойной Двойной y Тройной z Двойной
Выходы :
1. хх гггг
2. гггггг
3. ххх гггг zzz Двойной
Примечание : это решение также умножает значение повторяющихся ключевых слов. Это связано с разбором строки в обратном порядке.