如何在检查算术级数时编写python代码?

时间:2019-02-16 05:52:57

标签: python

定义一个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

1 个答案:

答案 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