#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 дважды.