首页 > 解决方案 > 从下一个元素中减去每个元素的最佳方法是什么

问题描述

我有很长的累积列表,我想从下一个元素中减去每个元素。那么最好的方法是什么?“在可读性和速度方面最好的”

例如:列表是:

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]

它是如此之快,但它很复杂且不可读“我想我不会记得接下来几周我做了什么”

PS我正在使用反转列表res[::-1]

标签: python-3.x

解决方案


无需反转;只需将列表压缩成对:

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

推荐阅读