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]
它是如此之快,但它很复杂且不可读“我想我不会记得接下来几周我做了什么”
PS我正在使用反转列表res[::-1]
解决方案
无需反转;只需将列表压缩成对:
>>> [i - j for i, j in zip(res[1:], res[:-1])]
[1, 3, 2, 1]
推荐阅读
- json - 可能将 JSONObject 转换为 java 字符串
- c# - 将 C# 类属性转换为 XML 属性
- javascript - Javascript 事件委托/冒泡
- javascript - 如何从对象中的对象数组中更新对象?
- python - GRID_SEARCH 当需要一维数组时,传递了列向量 y
- javascript - 尽管满足条件,但 For 循环中的 IF 语句未执行
- python - Python heapq 实现
- python - 在 for 循环之外更改变量
- c++ - 将整数更改为长整数时出现大数字的浮点异常和不准确的结果
- python - 熊猫中按组分组的唯一值的一年滚动计数