Größe eines Arrays beim Einlesen mit array.fromfile

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
Thomas W.
User
Beiträge: 17
Registriert: Sonntag 9. April 2006, 08:36
Wohnort: Halle (Saale)

Ich habe eine Datei mit einem Array bekannter Größe. Nun könnte ich mir vor dem Einlesen des Arrays mit array.fromfile mein Array mit folgendem Kode in der richtigen Größe anlegen:

Code: Alles auswählen

>>> import array
>>> MeinFeld = array.array("I")
>>> for i in X_Teile*Y_Teile:
...     MeinFeld.append(i)
>>> MeinFeld.fromfile(f, X_Teile*Y_Teile)
Ich habe aber etwas rumgespielt und festgestellt, sich Python auch folgendes ausführt:

Code: Alles auswählen

>>> import array
>>> MeinFeld = array.array("I")
>>> MeinFeld.fromfile(f, X_Teile*Y_Teile)
Ich habe nach dem Einlesen ein Array der Größe X_Teile*Y_Teile, die Initialiserung eines leeren Arrays scheint nicht nötig zu sein.

Spricht irgendetwas dafür, das Array trotzdem vor dem Einlesen der Daten auf die mindestens notwendige Größe zu expandieren?
BlackJack

Nö, da spricht nichts dafür.
Thomas W.
User
Beiträge: 17
Registriert: Sonntag 9. April 2006, 08:36
Wohnort: Halle (Saale)

BlackJack hat geschrieben:Nö, da spricht nichts dafür.
Sehr schön :D, das macht das Programmieren angenehmer. Vom Gewinn an Geschwindigkeit (keine »langsamen« Schleifen) und Sicherheit (kein Überschreiben von anderen Daten) beim Programmablauf ganz zu schweigen :D.
BlackJack

Die Schleife war in der Tat etwas umständlich, da hätte es auch das hier getan:

Code: Alles auswählen

data = array.array('I', [0] * (x * y))
# Oder...
data = array.array('I', (0 for dummy in xrange(x * y)))
Antworten