Вопрос по циклам и спискам

Новичок в питоне, только изучаю.
Нужно написать функцию с двумя входными параметрами (x,t), где x - список целых чисел, t - целое число
Функция должна складывать попарно элементы списка x[] и сравнивать их сумму с t.
Если x[i] + x[i + 1] == t, то нужно удалить второй элемент x[i +1] из списка и продолжить. В конце функция должна вывести финальный измененный список. У меня получилось что-то вроде этого:

def trouble(x, t):
    i = 0
    while i < len(x):
        if x[i] + x[(i + 1)] != t:
            i += 1
        else:
            del x[i + 1]
    return x

Я получаю ошибку index out of range на строчке с условием. Проблема в том, что в определенный момент при удалении элемента смещаются индексы, как я понимаю. Подскажите, как можно лучше решить эту проблемку? Пока не могу догнать.


Ответы (1 шт):

Автор решения: Danis

IndexError происходит на последней итерации когда i является последним элементом списка. И при попытке обратиться к элементу под индексом i + 1 мы выходим за границу списка. Поэтому цикл надо останавливать немного раньше

while i < len(x) - 1:
→ Ссылка