比较列表中相邻数字的索引越界错误
Index out of bound error for comparing adjacent numbers in list
列表项
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
range(len(num_list) - 1)
将遍历列表中除最后一个索引之外的所有索引。所以 if 检查以确保它没有越界是没有必要的。
for i in num_list:
不会迭代 length/range,而是迭代值。
例如
num_list = [3,4,1,5,3]
for i in num_list:
print(i)
会输出
3
4
1
5
3
相反,您想遍历索引,在这种情况下,您的 foor 循环应该如下所示:
for i in range(len(num_list)):
其中以下代码
num_list = [3,4,1,5,3]
for i in num_list:
print(i)
会输出
0
1
2
3
4
列表项
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
range(len(num_list) - 1)
将遍历列表中除最后一个索引之外的所有索引。所以 if 检查以确保它没有越界是没有必要的。
for i in num_list:
不会迭代 length/range,而是迭代值。 例如
num_list = [3,4,1,5,3]
for i in num_list:
print(i)
会输出
3
4
1
5
3
相反,您想遍历索引,在这种情况下,您的 foor 循环应该如下所示:
for i in range(len(num_list)):
其中以下代码
num_list = [3,4,1,5,3]
for i in num_list:
print(i)
会输出
0
1
2
3
4