Listen bzw. Dictionaries

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
lordmyder

Hallo,
ich habe vor Daten in einer Textdatei zu speichern. Dabei wird jedem Datensatz ein Code zugewiesen anhand dieses Codes kann später der DAtensatz gefunden werden.
Jetzt meine Frage:
Ich will diese Daten per Script einlesen und in einem Dictionary oder einer Liste speichern und dann mit entsprechendem Schlüssel meine Daten zu finden. Bis zu welcher Datenmenge macht das Sinn? Ich habe gehört riesige Listen oder Dictionaries anzulegen sei nicht geschickt.
Ich werde ca. 110 Datensätze mit jedoch relativ viel Inhalt haben. Macht es noch Sinn das in Listen oder Dici´s zu speichern?
Danke schon mal für eure Antworten
Gruß
Lordmyder
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

lordmyder hat geschrieben:Ich will diese Daten per Script einlesen und in einem Dictionary oder einer Liste speichern und dann mit entsprechendem Schlüssel meine Daten zu finden. Bis zu welcher Datenmenge macht das Sinn?
Hi Lordmyder!

Dein Arbeitsspeicher begrenzt dich. Wenn du also nur 5 oder 10 MB an Daten einlesen willst und diese in einem Dictionary halten willst, um damit schnell arbeiten zu können, dann wird dich ein moderner Computer nicht aufhalten. Was sind schon 5 oder 10 MB für einen Computer mit Windows, KDE oder Gnome? Nichts!

Wenn du nicht weißt wie viel Daten es wirklich werden können und du auch nicht weißt ob dein Programm auch mit schwächeren Computern ausgeführt werden soll, dann empfehle ich als direkten Dictionary-Ersatz --> Shelve.

Shelve verhält sich wie ein Dictionary. Der Unterschied ist, dass die Daten in das Dateisystem geschrieben werden. Das ganze ist recht gut gecached, so dass der Zugriff auf die Daten sehr schnell ist und du keinen oder kaum einen Unterschied zu einem normalen Dictionary merken wirst. Ich hatte schon mit 80 MB großen Shelves zu tun und bemerkte keinen Geschwindigkeitsverlust.

Wie man ein Shelve verwenden kann siehst du unter anderem hier: http://www.python-forum.de/topic-6157.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lordmyder

Danke Gerold für die schnelle Antwort!
Antworten