Es gibt einen C ++ Vergleich, um die Vereinigung von Listen aus Listen von Listen zu erhalten: Der schnellste Weg zur Vereinigung von Sets
Und es gibt noch einige andere Python-bezogene Fragen, aber keine schlägt den schnellsten Weg vor, die Listen zu gewerkschaftlich zu organisieren:
Aus den Antworten geht hervor, dass es mindestens zwei Möglichkeiten gibt:
%Vor%Beachten Sie, dass ich das Set anschließend zur Liste übergebe, weil ich die Reihenfolge der Liste für die weitere Verarbeitung fixieren muss.
Nach einem Vergleich scheint list(set(chain(*x)))
stabiler zu sein und benötigt weniger Zeit:
[out]:
%Vor%Herausnehmen der Variablen von Casting-Sets zum Auflisten:
%Vor%[out]:
%Vor%Hier ist die vollständige Ausgabe, wenn ich versuche, die Zwischenzeiten (ohne Listcasting) zu drucken: Ссылка
Warum benötigt list(set(chain(*x)))
weniger Zeit als list(set().union(*x))
?
Gibt es eine andere Möglichkeit, die gleiche Liste von Listen zu erreichen? Verwenden Sie numpy
oder pandas
oder sframe
oder etwas? Ist die Alternative schneller?
Was am schnellsten ist, hängt von der Art von x
ab - ob es eine lange Liste oder eine kurze Liste ist, mit vielen Unterlisten oder wenigen Unterlisten, ob die Unterlisten lang oder kurz sind und ob es viele Duplikate oder wenige Duplikate gibt .
Hier sind einige Zeit-Ergebnisse, die einige Alternativen vergleichen. Es gibt so viele Möglichkeiten, dass dies keine vollständige Analyse ist, aber vielleicht gibt Ihnen das einen Rahmen für die Untersuchung Ihres Anwendungsfalls.
%Vor%Stellen Sie sicher, dass Sie die timeit-Benchmarks auf Ihrem eigenen Computer ausführen, da die Ergebnisse variieren können.
%Vor%