Вычесть следующий элемент списка из предыдущего элемента - PullRequest
0 голосов
/ 17 марта 2020

У меня есть список, и я хочу знать, можно ли выполнить следующее в Python без добавления дополнительных библиотек.

Я хочу получить список различий между элементами списка.

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

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

Я знаю, что могу сделать это, составив второй список и вычтя его, я просто подумал, есть ли другой способ.

Ответы [ 2 ]

2 голосов
/ 17 марта 2020

Вы можете использовать понимание списка и 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])
1 голос
/ 17 марта 2020

Это также возможно с пониманием списка, без использования zip. Просто переберите элементы списка от индекса 1 до n:

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

...