Нет, нет. Понятие dict создает новый элемент new для каждой итерации, а вашему коду нужно создать меньше элементов (консолидировать значения).
Невозможно ключи доступа, созданные на более ранней итерации, не без использования (уродливых, непитонических) побочных эффектов. Объект dict
, который будет создан посредством понимания, пока не существует, поэтому нет возможности создать самонаклад.
Просто придерживайтесь своего for
цикла, это
Альтернативой было бы использовать сортировку и группировку, алгоритм O (NlogN) и простой O (N) вашего прямого цикла:
from itertools import groupby
from operator import itemgetter
res = {key: sum(t[1] for t in group)
for key, group in groupby(sorted(data, key=itemgetter(0)), key=itemgetter(0))}