Seite 1 von 1

Listen zur Laufzeit erzeugen

Verfasst: Fr Okt 11, 2013 3:19 am
von gizno82
Hallo allerseits,

mal ne Frage, ist es in Python möglich die Größe von Listen (arrays) zur laufzeit festzulegen ?

Ich möchte einen Matrizenrechner schreiben, bei dem man zu Anfangs durch Angabe von Integer Werten die Größe der Matrix bestimmt.

Ist so etwas in Python machbar, es wäre nett von euch wenn jemand ein Code Snippet für mich hat.

viele Grüße

gizno82

Re: Listen zur Laufzeit erzeugen

Verfasst: Fr Okt 11, 2013 8:35 am
von oenone
Klar, arrays sind in Python dynamisch.

x = [] -> leeres array
x.append(1) -> 1 angefügt
y = x + [2, 3] -> addition von arrays ist einfach möglich
x.pop() -> entfernt letztes element und liefert es zurück
z = y[2:] -> alles ab element 2
z = y[1:3] -> elemente 1 und 2

usw..

oder mit der array-Klasse:

from array import array
x = array('i') -> typ: integer
x.append(1)
x.pop()

siehe auch hier: http://www.python.org/doc//current/library/array.html

Re: Listen zur Laufzeit erzeugen

Verfasst: Fr Okt 11, 2013 9:30 am
von Xin
gizno82 hat geschrieben:mal ne Frage, ist es in Python möglich die Größe von Listen (arrays) zur laufzeit festzulegen ?
Notfalls initialisiert Du sie einfach in der gewünschten Größe, indem Du die Matrix mit Nullen (oder der Identität) aufbaust und anschließend nur noch über Arrayzugriffe darauf zugreifst?

Re: Listen zur Laufzeit erzeugen

Verfasst: Fr Okt 11, 2013 11:48 pm
von sebix
Listen sind in Python ähnlich wie Arrays implementiert, nur eben mit dynamischer Größe. Implementiert sind das eben Arrays von Pointern, Random-Access ist also immer O(1). Wenn die Größe schon gegeben ist und nur Zahlen enthalten sind, sind empfehlen sich wie schon erwähnt und verlinkt richtige Arrays.

Wenn du numerisch, insbes. mit Matrizen arbeiten willst, solltest du dir erst Numpy ansehen. Das ist eine Library, die sich auf schnelle numerische Berechnungen bzw. Datenstrukturen konzentriert. Bei Fragen kann ich dir auch weiterhelfen.