Как цикл for заставить итерировать изменненый список заного, который был изменнем внутри цикла for?

После того как происходит вырезка числа и арифметического знака по индексу, происходит удаления тех же символов, по тому же индексу, но счет цикла for не начинает сначала списка term_list, как сделать так, чтобы список term_list, а именно показатели i и n начинали итерацию сначала обновленного списка term_list?

term_list = ['2', '3', '+', '2', '6', '-', '2', '1', '*', '2', '/', '2', '.', '2']
  
# Список чисел и ариф.знаков строки ввода
Input_line_numbers = []

print(term_list, '\n')
# Создание списка с конкатенированными числами и ариф.знаками
for i, n in enumerate(term_list):
    print('Я индекс: ', i, ' - Я число: ', n, '\n')
    if n in ("+", "-", "*", "/"):
        print('Нашел арифметическое действие: ', n)
        print('До: ', term_list)
        print('До: ', Input_line_numbers, '\n')
        # Делаем вырезку в отдельный список от первого знака и 
        # до знака арифметики
        Input_line_numbers.append(''.join(term_list[0:i]))
        # Удоляем часть списка от первого знака и до знака арифметики
        del term_list[0:i]
        # Вырезаем сам знак арифметики
        Input_line_numbers.append(''.join(term_list[0]))
        # Удоляем знак арифметики
        del term_list[0]
        print('После: ', term_list)
        print('После: ', Input_line_numbers, '\n')

# Вызераем в отдельный список последнее число
Input_line_numbers.append(''.join(term_list[0:]))   
# Удоляем последнее число из списка
del term_list[0:]

print(Input_line_numbers)  

введите сюда описание изображения


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

Автор решения: Анатолий Михеенко

Нашел решение, использовать функцию copy(), так же исключить функцию enumerate(), и искать индекс элементов списка, внутри цикла for

term_list = ['2', '3', '+', '2', '6', '-', '2', '1', '*', '2', '/', '2', '.', '2']
  
# Список чисел и ариф.знаков строки ввода
Input_line_numbers = []

print(term_list)
# Создание списка с конкатенированными числами и ариф.знаками
for n in term_list.copy():
    i = term_list.index(n)
    print('Я индекс: ', i, ' - Я число: ', n)
    if n in ("+", "-", "*", "/"):
        print('Нашел арифметическое действие: ', n)
        print('До: ', term_list)
        print('До: ', Input_line_numbers)
        # Делаем вырезку в отдельный список от первого знака и 
        # до знака арифметики
        Input_line_numbers.append(''.join(term_list[0:i]))
        # Удоляем часть списка от первого знака и до знака арифметики
        del term_list[0:i]
        # Вырезаем сам знак арифметики
        Input_line_numbers.append(''.join(term_list[0]))
        # Удоляем знак арифметики
        del term_list[0]
        print('После: ', term_list)
        print('После: ', Input_line_numbers)
        i = 0
# Вызераем в отдельный список последнее число
Input_line_numbers.append(''.join(term_list[0:]))   
# Удоляем последнее число из списка
del term_list[0:]

print(Input_line_numbers)  

введите сюда описание изображения

→ Ссылка