我试图检查列表中的每个元素是否有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')
答案 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")