Альтернативой defaultdict
является использование метода setdefault
стандартных словарей:
result = {}
for widget_type, app in widgets:
result.setdefault(widget_type, []).append(app)
Это зависит от того факта, что списки являются изменяемыми, поэтому то, что возвращается из setdefault, является тем же спискомкак в словаре, поэтому вы можете добавить к нему.