Предполагая, что кортежи в массивах упорядочены (или, по крайней мере, сгруппированы) по второму значению, вы можете использовать функцию groupby из itertools, чтобы выполнить преобразование:
from itertools import groupby
def group(tuples):
return [ (sum(next(zip(*ts))),k) for k,ts in groupby(tuples,key=lambda t:t[1])]
d = { "a":[(0,1),(1,1),(2,1),(0,2),(0,3)] }
d2 = { key:group(tuples) for key,tuples in d.items() }
# d2: {'a': [(3, 1), (0, 2), (0, 3)]}
, если нет, вы нужно отсортировать их в групповой функции, используя:
tuples = sorted(tuples,key=lambda t:t[1])