Listen zur Laufzeit erzeugen

Objektorientierte Skriptsprache: (python.org)
Antworten
gizno82
Beiträge: 46
Registriert: Sa Dez 19, 2009 4:03 pm

Listen zur Laufzeit erzeugen

Beitrag von gizno82 » Fr Okt 11, 2013 3:19 am

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

Benutzeravatar
oenone
Beiträge: 223
Registriert: Do Sep 01, 2011 2:42 pm
Wohnort: Bremen
Kontaktdaten:

Re: Listen zur Laufzeit erzeugen

Beitrag von oenone » Fr Okt 11, 2013 8:35 am

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

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Listen zur Laufzeit erzeugen

Beitrag von Xin » Fr Okt 11, 2013 9:30 am

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?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

sebix
Beiträge: 82
Registriert: Mo Nov 19, 2012 8:27 pm

Re: Listen zur Laufzeit erzeugen

Beitrag von sebix » Fr Okt 11, 2013 11:48 pm

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.

Antworten