Учитывая список чисел, я пытаюсь написать код, который находит разницу между последовательными элементами. Например, 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]]]]
. Как правильно отформатировать скобки? (Я пытался угадать и проверить, но это самое близкое, что я получил) И как мне написать это, когда он вычитает текущий элемент из предыдущего элемента, не получая ошибки индекса для первого элемента? Я все еще хочу, чтобы первый элемент выходного списка был равен нулю, но я не знаю, как это сделать, используя рекурсию, и по какой-то причине это кажется мне лучшим путем.