Performance von Dctionaries

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Hallo

ich habe eine Vielzahl von Daten, die ich erfasse und
dann idealerweise nicht über eine Liste speichern mag,
da ich da m.W. nur über den Index dann an den Wert komme,
sondern ich dachte an ein Dictionary, so dass ich die Wertzuweisung
über den Key machen kann und die Daten auch so wieder bekomme.
Ich fänd das lesbarer.

Aber
a) ist das performant? auch wenn ich das dict dann an eine Methode übergebe?
b) oder gibt es andere Ideen dazu?

Danke
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@CoderGirl: der Zugriff auf die Inhalte eines Dictionary geht in Python sehr schnell - auch bei großen Datenmengen. Bei der Parameterübergabe an Funktionen/Methoden werden stets nur Referenzen verwendet. Daher kannst Du auch umfangreiche Dictionaries ohne Performance-Nachteile als Argumente nutzen.
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Hi

danke Dir.
Stimmt, an den call by ref. habe ich eben nicht gedacht.

Cool, danke mal wieder für die passende Antwort ohne in Belehrungen zu verfallen ;-)
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
nezzcarth
User
Beiträge: 1635
Registriert: Samstag 16. April 2011, 12:47

Na ja, wenn du findest, dass es lesbarer ist, nimm doch ruhig ein Dictionary. Ich finde, dass man in solchen Situationen die sinnvolle Formulierung der Lösung höher werten sollte, als die Performance. Letztere ist im Grunde ja nur ein Implementierungsdetail. Falls sich herausstellt, dass das in deinem Anwendungsfall wirklich extrem langsam ist, kann man schauen, ob man die zugrunde liegende Datenstruktur durch eine austauscht, die für das konkrete Problem besser passt und für diese die üblichen Methoden eines Dictionaries implementiert.
Antworten