定义一个Python函数progress(l),该函数接受一个非空的整数l列表并返回
True :如果l中的整数形成算术级数
即,l的形式为[a,a + d,a + 2d,…,a + kd]。
>>> progression([3])
True
>>> progression([7,3,-1,-5])
True
>>> progression([3,5,7,9,10])
False
答案 0 :(得分:1)
您可以将相邻的数字配对,计算两对数字之间的差异,如果唯一差异的数量不大于1,则确定列表形成算术级数。
from operator import sub
def progression(l):
return len(set(sub(*p) for p in zip(l, l[1:]))) <= 1
这样:
print(progression([3]))
print(progression([7,3,-1,-5]))
print(progression([3,5,7,9,10]))
输出:
True
True
False