Попробуйте сделать это:
positives = myList[::2]
negatives = myList[1::2]
result = sum(positives) - sum(negatives)
print ("%s = %d" % (" + ".join(["%d - %d" % (p, n) for p, n in zip(positives, negatives)]), result))
Я объясню, что я здесь делаю.Первые две строки берут кусочки вашего списка.Я беру все остальные числа в myList
, начиная с 0 для positives
и начиная с 1 для negatives
.Отсюда, для нахождения результата знакопеременной суммы нужно просто взять сумму positives
и вычесть из нее сумму negatives
.
Последняя строка несколько занята.Здесь я объединяю положительные и отрицательные значения вместе, что дает список из двух кортежей в форме (positive, negative)
, а затем я использую форматирование строки для создания формы p - n
.Оттуда я использую join
, чтобы соединить их вместе со знаком плюс, который производит p0 - n0 + p1 - n1 + p2 - n2...
.Наконец, я снова использую форматирование строки, чтобы получить его в виде p0 - n0 + p1 - n1 + p2 - n2 ... = result
.