Python : 循环比较

Python : compare in looping

我有一个看起来有点像这样的数组 A = [1, 2 , 3, 4, 5, 6, 7, 8, 7, 6, 5,4,3,2,1,0,1,2,3,4]

已编辑: 我尝试使用 for 循环,但我似乎做不对 你们可以看到峰是 8 谷是 0 我绝望的举动是反复输入如果 如果 A[0] < A[1] : 如果 A[1] < A[2]: ...

直到它不对(A[7] < A[8])(错误) 然后一些数组需要保存 A[7] 的值,比如 z

而且我希望循环在每次 z 捕捉到一个值时停止

这只是内循环,我还需要另一个外循环,以便它可以根据峰值点检测各种谷点。

我将遍历列表,不包括第一个和最后一个元素,并将每个元素与其之前和之后的元素进行比较

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

简单使用堆库:

import heapq as hpq

a = [1, 2 , 3, 4, 5, 6, 7, 8, 7, 6, 5]
turn = hpq.nlargest(a)