Sortierte Listen in Python zusammenführen

Ich habe ein paar sortierte Objektlisten und eine Vergleichsfunktion

class Obj :
    def __init__(p) :
        self.points = p
def cmp(a, b) :
    return a.points < b.points

a = [Obj(1), Obj(3), Obj(8), ...]
b = [Obj(1), Obj(2), Obj(3), ...]
c = [Obj(100), Obj(300), Obj(800), ...]

result = magic(a, b, c)
assert result == [Obj(1), Obj(1), Obj(2), Obj(3), Obj(3), Obj(8), ...]

was machtmagic aussehen wie? Meine aktuelle Implementierung ist

def magic(*args) :
    r = []
    for a in args : r += a
    return sorted(r, cmp)

aber das ist ziemlich ineffizient. Bessere Antworten?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage