Вы можете решить эту проблему, используя словарь для хранения суммы отсчетов:
l =[(1, 'project1', 'errorMessage1'),
(2, 'project1', 'errorMessage1'),
(3, 'project2', 'errorMessage1'),
(1, 'project3', 'errorMessage2')]
d = {}
for t in l:
if t[1:] in d:
d[t[1:]] += t[0]
else:
d[t[1:]] = t[0]
Вывод:
>>> d
{('project1', 'errorMessage1'): 3,
('project2', 'errorMessage1'): 3,
('project3', 'errorMessage2'): 1}
Добавить представление списка для переформатирования результата:
>>> [(v, *k) for k, v in d.items()]
[(3, 'project1', 'errorMessage1'),
(3, 'project2', 'errorMessage1'),
(1, 'project3', 'errorMessage2')]