Математическая операция между парой чисел в списке

#python #numpy

#python #numpy

Вопрос:

У меня четный список чисел:

 lst = [2,3,4,1,6,7]
 

Мне нужно вычесть второе число каждой пары и суммировать результат всех пар, ниже результата:

 out = 3-2 1-4 7-6
 

Есть ли какое-нибудь элегантное решение? Цените любые подсказки!

Ответ №1:

 >>> sum(lst[1::2]) - sum(lst[::2])
-1
 

Ответ №2:

Простой способ сделать это

 import numpy as np

lst = np.array([2,3,4,1,6,7])

print(np.sum(lst[1::2] - lst[::2]))
 

Ответ №3:

Вы могли бы использовать enumerate

 sum(e if c%2 else -e for c,e in enumerate(lst))
 

Ответ №4:

Вы могли бы сделать что-то вроде этого

 import numpy as np

lst = [2, 3, 4, 1, 6, 7]
lst = np.array(lst)
# array([2 3 4 1 6 7])

lst = np.split(lst, len(lst) / 2)
# [array([2, 3]), array([4, 1]), array([6, 7])]

lst = [arr[1] - arr[0] for arr in lst]
# [1, -3, 1]

lst = sum(lst)

print(lst) # -1