gpt4 book ai didi

python-3.x - python 3.x : Trying to compare current element with previous and next (without built-in functions)

转载 作者:行者123 更新时间:2023-12-04 12:46:17 26 4
gpt4 key购买 nike

如果当前列表元素大于前一个列表元素下一个列表元素,我正在尝试编写添加到计数的代码。因此,例如,在一个列表中: [1, 3, 5, 7, 2]... 1 和 2 不会被评估,因为它们只有一个数字在旁边。所以3是最先比较的而且3不大于15,5不大于37,而7 大于 5 和 2,所以计数 = 1。

这是作业,所以我不能使用内置函数。列表的长度是随机的,可以包含正数和负数。

我尝试了两种变体...在这个版本中,i 值永远不会上升。为什么是这样?我如何让它转到下一个号码?

a = [int(i) for i in input().split()]
b = a[0]
count = 0

for i in a[1:]:
for j in a[2:]:
if i > j and i > b:
count +=1
b = i

print(count)

在第二个版本中,我得到索引错误:列表索引超出范围。我该如何修复此类错误?

a = [int(i) for i in input().split()]
prev = nxt = 0
b = a[1]
count = 0

for i in range(1, len(a)):
prev = a[i-1]
nxt = a[i+1]
if b > prev and b > nxt:
count +=1
prev = b
b = nxt

print(count)

感谢您的帮助。我想知道我哪里出错了。

最佳答案

在您编写的代码中,您正试图访问不在列表中的索引。您正试图访问列表中不存在的最后一个元素的下一个元素!只需更改for循环范围

for i in range(1,len(a)-1)

这是我写的代码:

 count = 0
for i in range(1,len(a)-1):
if a[i+1] < a[i] > a[i-1] :
count += 1

关于python-3.x - python 3.x : Trying to compare current element with previous and next (without built-in functions),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46876672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com