我有一个看起来像这样的数组 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 [7]
我希望每次z捕获到一个值时循环就停止 这只是内部循环,我仍然需要另一个外部循环,以便它可以基于峰值点检测各种谷点。
答案 0 :(得分:0)
我将遍历列表,不使用第一个和最后一个元素,并将每个元素与其之前的元素和之后的元素进行比较
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
答案 1 :(得分:0)
只需使用堆库:
import heapq as hpq
a = [1, 2 , 3, 4, 5, 6, 7, 8, 7, 6, 5]
turn = hpq.nlargest(a)