Seite 1 von 1

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

Verfasst: Freitag 21. September 2007, 12:17
von Thomas W.
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?

Verfasst: Freitag 21. September 2007, 12:34
von BlackJack
Nö, da spricht nichts dafür.

Python gefällt mir immer besser

Verfasst: Freitag 21. September 2007, 12:41
von Thomas W.
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.

Verfasst: Freitag 21. September 2007, 13:17
von 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)))