a = [[1, 100], [2, 200], [3,300], ...]
b = [[1, 110], [3,330], ...]
с = [[1, 100, 110], [2, 200], [3, 300, 310], ...]
a = [[i, i*100] for i in range(15000)]
b = [[i, i*110] for i in range(15000)]
c = {}
for i in a+b:
c.setdefault(i[0], []).append(i[1:])
for i in a+b
сделать два цикла, для a и для b. Так мы не будем выделять память под новый бесполезный список только чтобы код смотрелся лаконичнее. Но 15000 подсписков — это, в общем, ерунда и особо заморачиваться не стоит.