Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用于比较列表中相邻数字的索引越界错误_Python_Indexoutofboundsexception - Fatal编程技术网

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