Gibt es einen Leistungsvorteil bei der Verwendung von Listen über Dictionaries über Tuples in Python?
Wenn ich auf Geschwindigkeit optimiere, gibt es dann einen Grund, das eine dem anderen vorzuziehen?
Gibt es einen Leistungsvorteil bei der Verwendung von Listen über Dictionaries über Tuples in Python?
Wenn ich auf Geschwindigkeit optimiere, gibt es dann einen Grund, das eine dem anderen vorzuziehen?
Reich,
Listen und Dicts sind für unterschiedliche Bedürfnisse geeignet. Stellen Sie sicher, dass Sie nicht Listen für lineare Suchen verwenden, wo Dicts Hashes perfekt sind, weil es viel langsamer ist. Auch, wenn Sie nur eine Liste von Elementen zu durchlaufen brauchen, verwenden Sie nicht Dicts, weil es viel mehr Platz als Listen nehmen wird.
Das mag offensichtlich klingen, aber die Auswahl der richtigen Datenstrukturen auf algorithmischem Wege bringt viel höhere Leistungsgewinne als die Mikrooptimierung aufgrund effizienterer kompilierter Codelayouts usw. Wenn Sie in einer Liste in O(n) statt in einem Diktat in O(1) suchen, werden Sie durch Mikrooptimierungen nicht gerettet.
Tupel sind bei einer geringen Anzahl von Elementen etwas schneller zu erstellen. Der größte Teil des Gewinns liegt jedoch im Speicherverbrauch und nicht in den CPU-Zyklen, da Tupel weniger Platz benötigen als Listen.
Davon abgesehen sollte der Leistungsunterschied vernachlässigbar sein, und im Allgemeinen sollten Sie sich erst dann um diese Art von Mikrooptimierungen kümmern, wenn Sie Ihren Code profiliert und einen Codeabschnitt identifiziert haben, der einen Engpass darstellt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.