каков наилучший способ вычесть каждый элемент из следующего элемента

#python-3.x

#python-3.x

Вопрос:

У меня очень длинный накопленный список, и я хочу вычесть каждый элемент из следующего элемента. Итак, каков наилучший способ? «Лучший с точки зрения удобочитаемости и скорости»

Пример: список является:

 res = [0, 1, 4, 6, 7]  
  

И результат должен быть : output=[1, 3, 2, 1]
Чтобы уточнить, последний элемент выходных данных получен из output[-1]= res[-1] - res[-2]

Итак, я попробовал [x-y for x, y in zip (res[::-1], res[::-1][1:])][::-1]

Это так быстро, но сложно и не читается «Я думаю, что не вспомню, что я делал в ближайшие пару недель»

P.S Я переворачиваю список, используя res[::-1]

Ответ №1:

Нет необходимости менять местами; просто разбейте список на пары:

 >>> [i - j for i, j in zip(res[1:], res[:-1])]
[1, 3, 2, 1]
  

Комментарии:

1. да, вы правы. Я думаю, мы можем использовать [i - j for i, j in zip(res[1:], res)] , не разделяя res дважды.