这是我的作业。
问题是找到一种方法来检查列表中的项是否连续。
以下是我编写的代码:
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这些数字,那么将返回True。
如果我输入2、6、3、9、7、1、4这些数字,那么将返回False。
在这里,我成功地分别返回了True或False值。
但有两个问题让我感到困扰,因为如果我使用我的代码来解决这些问题,我得不到想要的值(会出现错误)。
第一个问题:空列表是否被认为是连续的列表?
第二个问题:包含单个值的列表是否被认为是连续的列表?
您能帮助我吗?
[]
和[1]
为已排序,因为[] == sorted([])
和[1] == sorted([1])
,即使没有两个元素,因为没有未排序的元素。类似的逻辑应该适用于连续的元素,在我看来。 - DSM