我的清单很长,我想从下一个元素中减去每个元素。那么最好的方法是什么? “在可读性和速度方面都是最好的”
例如:列表为:
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]
反转列表
答案 0 :(得分:1)
无需反转;只需将列表压缩成对:
>>> [i - j for i, j in zip(res[1:], res[:-1])]
[1, 3, 2, 1]