Python 如何从列表中的索引1开始,并在列表中最后一个元素之前结束

Python 如何从列表中的索引1开始,并在列表中最后一个元素之前结束,python,Python,我想从1开始,在最后一个数字之前的数字结束。我正在遍历一个列表。顺便说一句,我试图查看不计算第一个数和最后一个数的峰值数。只需从范围函数的上限中减去1即可: enter code here count = 0 for i in range(1,len(listOfmountains)-1): if listOfmountains[i+1] > listOfmountains[i]:

我想从1开始,在最后一个数字之前的数字结束。我正在遍历一个列表。顺便说一句,我试图查看不计算第一个数和最后一个数的峰值数。

只需从范围函数的上限中减去1即可:

enter code here   count = 0
                  for i in range(1,len(listOfmountains)-1):
                      if listOfmountains[i+1] > listOfmountains[i]:
                      count +=1
                   elif listOfmountains[i-1] > listOfmountains[i]:
                         count +=1
                   return count
enter code hereif __name__ == "__main__":

testcase = [1000,1250,1200,1300,1100,1500,1400]
print("{} is the number of peaks in {}".format(countPeaks(testcase),testcase))

testcase = [1000,1250,2000,1600,2100]
print("{} is the number of peaks in {}".format(countPeaks(testcase),testcase))
testcase =  [2000, 1250, 3500, 1600, 1400, 1650, 1800, 850, 1775, 1900]
print("{} is the number of peaks in {}".format(countPeaks(testcase), testcase))

您就快到了,只需将
范围(1,len(山脉列表))
更改为
范围(1,len(山脉列表)-1

range()
的方法签名如下:

count = 0
for i in range(1,len(listOfmountains)-1):
    if listOfmountains[i+1] > listOfmountains[i]:
         count +=1
    elif listOfmountains[i-1] > listOfmountains[i]:
         count +=1
return count
range()
将创建一个包含开始值而不包含停止值的范围。例如:

range(start, stop, step)
将仅打印值:
[0,1,2,3]
(请注意,它不包括停止值)

print([i for i in range(0,4)])