#python
Вопрос:
В моем коде идея выглядит так:
В последовательности [5,1,2,4,3], где эта последовательность находится в не строго возрастающем порядке, я хочу добавить увеличивающийся элемент в другой список.
В этом случае возвращаемый список должен быть [1,2,4]
Но я получаю [1,2]
Мой код выглядит так:
def max_increase(seq):
list1 = []
index = 0
for index in range(len(seq)-1):
if seq[index] < seq[index 1]:
list1.append(seq[index])
index = index 1
else:
pass
return list1
Я думаю, что функция не достигла последнего элемента в последовательности, но я не знаю, как это исправить.
Комментарии:
1. Ваш отступ неверен.
2. В приведенном вами примере последнее сравнение будет между 4 и 3. 4 не меньше 3, поэтому оно не будет добавлено в новый список. Кроме того, цикл for уже увеличивает индекс, поэтому вам не нужна
index = index 1
строка
Ответ №1:
seq = [5,1,2,4,3]
значение максимального увеличения(seq):
list1 = []
list1.append(seq[0])
for index in range(1,len(seq)-1):
list1.append(seq[index])
if list1[0] > list1[1] :
del list1[0]
elif list1[len(list1) - 2] < list1[len(list1) - 1]:
pass
else :
del list1[len(list1) - 1]
return list1
max_increase(seq)
Вот ваш ответ, но этот код работает только для одной увеличивающейся строки. Вы поймете это, когда запустите код. Если вы хотите добавить несколько элементов, таких как seq = [1,2,3,1,2,3], вам придется добавить дополнительные условия перед командой del в else. Просто подумайте, как бот и все дела, и вы найдете свой ответ.