给定一个数字列表,我要编写一段代码来查找连续元素之间的差异。例如,A = [1, 10, 100, 50, 40]
,函数的输出应该是[0, 9, 90, 50, 10]
。以下是我尝试使用递归实现的代码:
def deviation(A):
if len(A) < 2:
return
else:
return [abs(A[0]-A[1])] + [deviation(A[1: ])]
然而,我得到的输出结果(使用上述A作为输入的示例)是
[9,[90,[50,[10,None]]]]
。 我应该如何正确格式化括号?(我尝试过猜测和检查,但这是我最接近的情况)如何编写代码,使其减去前一个元素而不会在第一个元素处出现索引错误? 我仍希望输出列表的第一个元素为零,但我不知道如何使用递归来实现这一点,对我而言似乎这是最好的方法。
numpy.abs(numpy.diff([1, 10, 100, 50, 40]))
- Fred Foo