给定一个数字列表,我正在尝试编写一个代码来找出连续元素之间的差异。例如,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]]]]
. 如何正确格式化括号?(我试过猜测和检查,但这是我得到的最接近的)我如何写这个,它从前一个元素中减去当前元素,而不会出现第一个元素的索引错误?我仍然希望输出列表的第一个元素为零,但我不知道如何使用递归来解决这个问题,出于某种原因,这对我来说似乎是最好的路线。