我想检查一个元组内的数字是否是连续的数字,按升序或降序排列,而不重复任何数字,即12345或98765. pythonist的方法是什么?
答案 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。
希望很清楚。