给定一个数字列表,我试图编写一个代码,找出连续元素之间的差异.例如,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: ])]
Run Code Online (Sandbox Code Playgroud)
然而,我得到的输出(使用上面的A作为输入的例子)是[9, [90, [50, [10, None]]]].如何正确格式化括号?(我已经尝试过猜测和检查,但我这是我得到的最接近的)我怎么写它从前一个元素中减去当前元素而不会得到第一个元素的索引错误?我仍然希望输出列表的第一个元素为零,但我不知道如何使用递归来解决这个问题,并且由于某种原因,这似乎是我的最佳途径.