这是我的作业。
问题是找到一种方法来检查列表中的项是否是连续的。
以下是我写的代码:
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值。
但有两个问题让我感到不安,因为如果我使用我的代码来解决问题,我就不会得到我想要的价值(它给我一个错误)
第一个问题:空列表是否被视为连续列表?
第二:是否将涉及单个值的列表视为连续列表?
你想帮助我吗?
答案 0 :(得分:1)
通过评论中讨论的数学约定,如果不在您的作业中更精确地指定,则将空列表和具有单个元素的列表视为连续将是标准的。
根据空洞真相的逻辑,如果列表没有连续的顺序,则需要足够的元素(2)来打破这种排序条件。要在现有代码中处理此问题,您可以在主检查之前执行检查,以确保空列表的基本情况和包含一个元素的列表返回True
。