【发布时间】:2020-02-05 04:23:03
【问题描述】:
我正在尝试编写一个程序来计算列表中某个项目大于其任一侧相邻邻居的次数:
inp = [1, 2, 3, 2, 8, 7, 6, 9, 5]
def check(n):
count = 0
ind_num1 = 0
ind_num2 = 2
index1 = n[ind_num1]
index2 = n[ind_num2]
for i in n[1:-1]:
if i > index1 and i > index2:
count += 1
ind_num1 += 1
ind_num2 += 1
return count
print(check(inp))
我的解决方案是检查 for 循环 (i) 中的值是否大于其上方和下方的索引,同时每次通过循环为每个相邻索引添加一个。 ind_num1 和 ind_num2 在循环进行时显示正确的值。但是,index1 和 index2 保持不变,而不是随着 ind_num1 和 `ind_num2' 的值递增。他们为什么不改变?
【问题讨论】:
-
我刚刚意识到 index1 和 index2 的值是 1 和 3,因为它们是列表中 0、2 的值。但同样的问题也适用于标题,为什么它们没有改变?
-
您想将
inp[0]与inp[-1]和inp[1]进行比较吗? -
No inp[0] 没有两个邻居,inp[-1] 也没有
标签: python loops for-loop variables variable-assignment