什么是生成原始列表的相邻值之间差异列表的pythonic方法

What is the pythonic method to produce a list of the differences between the neighbouring values of an original list

我有一个列表,想知道是否可以在 Python 中完成以下操作而无需 添加额外的库来改进我的代码。

我想获取列表元素之间差异的列表。

orig_list = [12, 27,31,55,95]

#desired output
spacings =[15, 4, 24,40]

我知道我可以通过制作第二个列表并减去它来做到这一点,我只是想知道是否有 another/better 方法。

您可以使用列表理解和 zip:

[j-i for i,j in zip(orig_list[:-1], orig_list[1:])]
# [15, 4, 24, 40]

虽然如果 NumPy 是一个选项,你有 np.diff:

np.diff(orig_list)
# array([15,  4, 24, 40])

这也可以通过列表理解来实现,而无需使用 zip。只需遍历从索引 1 到 n 的列表元素:

[orig_list[i]- orig_list[i-1] for i in range(1, len(orig_list))]