检查元组中的连续数字

时间:2014-07-06 05:57:00

标签: python python-2.7 tuples

我想检查一个元组内的数字是否是连续的数字,按升序或降序排列,而不重复任何数字,即12345或98765. pythonist的方法是什么?

1 个答案:

答案 0 :(得分:4)

您可以按照以下方式执行此操作:

a = (7,8,9,10,11,12)   #or any other sequence of integers

print set(y-x for x,y in zip(a,a[1:])) in ({1}, {-1})

如果数字按升序或降序连续,则打印True

此代码的工作原理如下:

首先,它计算相邻数字之间的差异

其次,它创建了一组这些差异,这基本上意味着它获得了唯一的差异集,忽略了重复。

第三,它检查该集合是{1}还是{-1},这意味着唯一的区别是全部相差1或者全部相差-1。

希望很清楚。