如何检查列表中的连续数字?

时间:2016-04-16 18:02:18

标签: python python-2.7

这是我的作业。

问题是找到一种方法来检查列表中的项是否是连续的。

以下是我写的代码:

def consecutive(var):
for x in range(2, len(var)):
    forward = var[x] - var[x-1]
    backward = var[x-1] - var[x-2]
if forward == backward:
    return True
else:
    return False

var = []
print 'Enter your number:'
while True:
    num = raw_input()
    if num == '':
        break
    var += [int(num)]

print consecutive(var)

如果我输入1,2,3,4,5这样的数字,那么我会得到真的

如果我输入的数字分别为2,6,3,9,7,1,4那么我会得到假的

在这里,我成功地分别返回了True或False值。

但有两个问题让我感到不安,因为如果我使用我的代码来解决问题,我就不会得到我想要的价值(它给我一个错误)

第一个问题:空列表是否被视为连续列表?

第二:是否将涉及单个值的列表视为连续列表?

你想帮助我吗?

1 个答案:

答案 0 :(得分:1)

通过评论中讨论的数学约定,如果不在您的作业中更精确地指定,则将空列表和具有单个元素的列表视为连续将是标准的。

根据空洞真相的逻辑,如果列表没有连续的顺序,则需要足够的元素(2)来打破这种排序条件。要在现有代码中处理此问题,您可以在主检查之前执行检查,以确保空列表的基本情况和包含一个元素的列表返回True