如何避免索引错误?

时间:2017-04-12 01:31:17

标签: python list

我试图检查列表中的每个元素是否有1的差异。我试图从前一个元素中减去列表中的元素,但它输出一个IndexError。如何编辑代码以删除它?

import sys
q = int(input().strip())
for i in range(q):
    n = int(input().strip())
    a = list(map(int, input().strip().split(' ')))
    for i in range(len(a)):
        a.sort()
    if a[i+1]-a[i] == 1:
        print('Yes')
    else:
        print('No')

1 个答案:

答案 0 :(得分:0)

[i+1]不适用于列表中的最后一个元素,因为您将超出列表范围。请记住,列表的长度不是列表中的最后一个索引,因为列表索引从0开始。

我认为你的问题太复杂了。尝试使用enumerate()函数,但不是从第一个元素开始,而是从第二个元素开始。使用enumerate(),索引实际上将用于之前的元素。

q = [3, 5, 7, 8, 4, 5]
for i, j in enumerate(q[1:]):
    if j - q[i] == 1:
        print("Yes")