Есть некая последовательность из цифр. Нужно найти участки неубывания и нужно пропускать следующий за участком элемент
У меня есть последовательность: 3, 5, 4, 2, 1, 4, 6, 1, 0 Мне нужно вывести последовательность: 3,5; 2; 4,6; 0. Нужно пропустить 4,1,1. По заданию нужно пропускать следующий за участком элемент. Элементы идут по возрастанию, 4<5, значит следующий анализ начать нужно с 2, а не с 4. и т.д Я написал как не пропускать такие элементы, а как пропустить я не пойму. Буду благодарен за помощь! Вот мой код (и то скорее всего он не правильный):
result = []
podspisok = []
previous_number = None
for current_number in seq:
if previous_number is None or current_number > previous_number:
podspisok.append(current_number)
else:
result.append(podspisok)
podspisok = [current_number]
previous_number = current_number
if podspisok:
result.append(podspisok)
print(result)
Ответы (1 шт):
Автор решения: EzikBro
→ Ссылка
и то скорее всего он не правильный
Надо быть более уверенным в себе, я всего пару ваших строк поправил
seq = [3, 5, 4, 2, 1, 4, 6, 1, 0]
result = []
podspisok = []
previous_number = None
for current_number in seq:
if previous_number is None or current_number >= previous_number: # нестрогий знак
podspisok.append(current_number)
previous_number = current_number # разделил по веткам присваивание
else:
result.append(podspisok)
podspisok = [] # число, которое меньше предыдущего добавлять не нужно в следующий фрагмент
previous_number = None # и так как оно пропускается, считаем, будто его и не существует
if podspisok:
result.append(podspisok)
print(result) #[[3, 5], [2], [4, 6], [0]]