Python 用于比较列表中相邻数字的索引越界错误
列表项Python 用于比较列表中相邻数字的索引越界错误,python,indexoutofboundsexception,Python,Indexoutofboundsexception,列表项 for i in num_list: if(i < len(num_list) - 1 and num_list[i] == num_list[i+1]): count = count + 1 else: count = count 我在if条件下得到索引越界错误。错误是什么?我在if条件中使用了len,您的问题是I值不是列表的索引,而是列表中正在迭代的实际项目 循环中的else语句也不是必需的,因为它不会更改任何内容 我认为这
for i in num_list:
if(i < len(num_list) - 1 and num_list[i] == num_list[i+1]):
count = count + 1
else:
count = count
我在if条件下得到索引越界错误。错误是什么?我在if条件中使用了len,您的问题是I值不是列表的索引,而是列表中正在迭代的实际项目
循环中的else语句也不是必需的,因为它不会更改任何内容
我认为这就完成了你想要的:
count = 0
num_list = [1, 2, 3, 3, 2, 1, 1]
for i in range(len(num_list) - 1):
if(num_list[i] == num_list[i + 1]):
count += 1
print(count)
# Output: 2
rangelennum_列表-1将循环遍历除列表中最后一个索引之外的所有索引。因此,没有必要进行if检查以确保其不超出边界
for i in num_list:
不迭代长度/范围,而是迭代值。
比如说
num_list = [3,4,1,5,3]
for i in num_list:
print(i)
num_list = [3,4,1,5,3]
for i in num_list:
print(i)
将输出
3
4
1
5
3
0
1
2
3
4
相反,您希望迭代索引,在这种情况下,您的foor循环应该如下所示:
for i in range(len(num_list)):
其中包含以下代码:
将输出
3
4
1
5
3
0
1
2
3
4
在发布之前,请花点时间正确格式化和缩进您的代码,尤其是python。i不是元素的索引,而是元素本身。用于rangelennum_列表中的i:。另外,else:count=count是毫无意义的。关于i