Как цикл 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)

