Python-Datenstrukturen Overhead / Performance

Gibt es irgendeinen Leistungsvorteil, um Listen über Wörterbücher über Tupel in Python zu verwenden?

Wenn ich mich für die Geschwindigkeit optimiere, gibt es einen Grund, einen über einen anderen zu bevorzugen?

  • Python multiplikativen Ausdruck wertet schneller aus, wenn er eine Null findet?
  • Numpy Pure Funktionen für Performance, Caching
  • Optimierung eines All-Pfad-Algorithmus
  • Optimierung einer Partitionsfunktion
  • Eine gewichtete Version von random.choice
  • Kurzer Weg, um Elemente aus der Liste nach Index in Python zu entfernen
  • 4 Solutions collect form web for “Python-Datenstrukturen Overhead / Performance”

    Reich,

    Listen und Dicts sind Tiere, die für unterschiedliche Bedürfnisse geeignet sind. Vergewissern Sie sich, dass Sie keine Listen für lineare Suchvorgänge verwenden, wo Dicts Hashes perfekt sind, weil es viel langsamer ist. Auch, wenn Sie nur eine Liste von Elementen zu durchqueren brauchen, verwenden Sie keine Dicts, weil es viel mehr Platz als Listen nehmen wird.

    Das klingt offensichtlich, aber die Auswahl der richtigen Datenstrukturen hat algorithmisch viel höhere Performance-Gewinne, die Mikro-Optimierung durch effizientere kompilierte Code-Layouts, etc. Wenn Sie in einer Liste in O (n) anstatt in einem Dict in O ( 1), werden Mikrooptimierungen Sie nicht retten.

    Tupel wird etwas schneller für eine kleine Anzahl von Elementen zu konstruieren. Obwohl tatsächlich die meisten Gewinne im Speicher verwendet werden, anstatt CPU-Zyklen, da Tupel weniger Platz benötigen als Listen.

    Mit diesem Wesen sollte der Leistungsunterschied vernachlässigbar sein, und im Allgemeinen sollten Sie sich nicht um diese Art von Mikrooptimierungen kümmern, bis Sie Ihren Code profiliert haben und einen Abschnitt des Codes identifiziert haben, der ein Engpass ist.

    Der große Unterschied ist, dass Tupel unveränderlich sind, während Listen und Wörterbücher veränderliche Datenstrukturen sind. Dies bedeutet, dass Tupel auch schneller sind, also wenn Sie eine Sammlung von Artikeln haben, die sich nicht ändern, sollten Sie sie über Listen bevorzugen.

    Siehe folgende.

    • Beschleunigung Python
    • Wann sollten Sie mit der Optimierung des Codes beginnen
    • Ist die vorzeitige Optimierung wirklich die Wurzel allen Übels?
    • Sind Tupel effizienter als Listen in Python?
    Python ist die beste Programmiersprache der Welt.