У меня есть массив, который выглядит примерно так: A = [1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5,4,3,2,1,0,1,2, 3,4]
Отредактировано: я пытался делать с циклом, и пока я не могу понять, как это правильно. Для вас, ребята, видно, что пик равен 8, а долина равна 0. Мой отчаянный ход - это многократный вводесли Если A [0] До тех пор, пока это не было правильно (A [7] И я хочу, чтобы цикл останавливался каждый раз, когда z перехватывает значение Это только внутренний цикл, я все ещенужен еще один внешний контур, чтобы он мог определять различные точки долины на основе точки пика.
До тех пор, пока это не было правильно (A [7]
И я хочу, чтобы цикл останавливался каждый раз, когда z перехватывает значение
Это только внутренний цикл, я все ещенужен еще один внешний контур, чтобы он мог определять различные точки долины на основе точки пика.
Просто используйте библиотека кучи :
import heapq as hpq a = [1, 2 , 3, 4, 5, 6, 7, 8, 7, 6, 5] turn = hpq.nlargest(a)
Я бы перебрал список без первого и последнего элементов и сравнил бы каждый элемент с предыдущим и последующим
turn = None # i.e., no turning point for i in range(1, len(a) - 1): if (a[i+1] > a[i] and a[i] < a[i-1]) or (a[i+1] < a[i] and a[i] > a[i-1]): turn = i