Python: сравнить в цикле - PullRequest
0 голосов
/ 21 октября 2018

У меня есть массив, который выглядит примерно так: 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 перехватывает значение

Это только внутренний цикл, я все ещенужен еще один внешний контур, чтобы он мог определять различные точки долины на основе точки пика.

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Просто используйте библиотека кучи :

import heapq as hpq

a = [1, 2 , 3, 4, 5, 6, 7, 8, 7, 6, 5]
turn = hpq.nlargest(a)
0 голосов
/ 21 октября 2018

Я бы перебрал список без первого и последнего элементов и сравнил бы каждый элемент с предыдущим и последующим

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
...