У меня есть список вроде этого
lst = ['a','a','a','X','y','y','y','a','a','y','y','a','a','a','a','a','a','X','y','a','y','a','y','y','y','a','a','a','a']
Миссия состоит в том, чтобы получить этот вывод
lst = ['a','a','a','X','y','y','y','y','y','y','y','a','a','a','a','a','a','X','y','y','y','y','y','y','y','a','a','a','a']
Объясните: просто найдите X и последний y перед следующим X, а затемзаменить значения а между ними на у.Если в конце нет следующего X, то рассмотрим последний y.
Я попытался найти индексы начала и конца
starts = [i for i, x in enumerate(lst) if x == 'X']
[3, 17]
ends = [i for i, x in enumerate(lst) if x == 'y']
[4, 5, 6, 9, 10, 18, 20, 22, 23, 24]
и затем цикл начинается, чтобы найти числа между 3,17 в концах, изатем возьмите максимум и замените от 3 до максимума, который в данном случае равен 10.И так далее.
Вопрос в том, что может быть лучше, чем этот?