from itertools import groupby
from operator import itemgetter
p = [('AAPL', 50), ('AAPL', -50), ('RY', 100), ('RY', -43)]
map(lambda g: (g[0], sum(map(itemgetter(1), g[1]))), groupby(sorted(p),
    itemgetter(0)))
Как суммировать кортежи в списке, где первое значение одинаково?