Если вы намеревались использовать настоящие дикты, а не списки диктов, это проще.
D1 = dict(k1=1, k3=3, k4=4)
D2 = dict(k1=11, k2=12, k4=14)
Для этого нет простой встроенной функции, но метод setdefault
закрыто.Он пытается получить данный ключ, но создает его, если он не существует.
D3 = {}
for k, v in D1.items() | D2.items():
D3.setdefault(k, set()).add(v)
И результат.
{'k4': {4, 14}, 'k1': {1, 11}, 'k3': {3}, 'k2': {12}}
Все это предполагает, что порядок не имеет значения,просто комбинируя наборы.