Seite 1 von 1

2d Array in Python

Verfasst: Dienstag 11. November 2008, 18:57
von alfonsospringer
Hi, ich steh mal wieder ein wenig auf dem Schlauch und aus irgendeinem Grund kann mir auch Tante Google grade nicht weiterhelfen:

Wie erstelle ich nochmal ein mehrdimensionales Array in Python? In C++ ginge das beispielsweisr mit int feld[dimx][dimy]. Klar, in python werden sowohl das int, als auch die festen Dimensionen wegfallen, aber ich komm einfach nicht drauf, wies dann aussehen muss.

Vielen dank für eure Hilfe

Verfasst: Dienstag 11. November 2008, 19:01
von DasIch

Code: Alles auswählen

In [1]: foo = [1, [2, 3]]

In [2]: foo[0]
Out[2]: 1

In [3]: foo[1]
Out[3]: [2, 3]

In [4]: foo[1][0]
Out[4]: 2
Das wäre dann übrigens eine Liste.

Verfasst: Dienstag 11. November 2008, 19:02
von Leonidas
Das heißt nicht Array sondern Liste. Arrays gibt es in Python auch, nur ist das eben genau das was man in C auch Array nennt.

Code: Alles auswählen

l = [[1, 2, 3],[4, 5, 6]
print l[0][1]

Verfasst: Dienstag 11. November 2008, 19:02
von alfonsospringer
Jep, das ist genau das was ich suchte. Eigentlich auch logisch. Eine Liste, deren Elemente weitere Listen sind. Dankeschön. Schöne Lösung

Verfasst: Dienstag 11. November 2008, 19:04
von Leonidas
alfonsospringer hat geschrieben:

Code: Alles auswählen

in: ?
out: ?
Das sind die Eingabeprompts und die Ausgabe von IPython (analog zu >>> im normalen Interpreter), einem etwas aufgemotzten "Aufsatz" auf den normalen Python-Interpreter.

Verfasst: Dienstag 11. November 2008, 19:04
von DasIch
Die kommen von IPython, einer Python Shell.

Verfasst: Dienstag 11. November 2008, 19:05
von alfonsospringer
Wow, ihr seit ja flott. Vielen dank

Verfasst: Dienstag 11. November 2008, 19:35
von yipyip
Noch'n kleiner Tip:

Code: Alles auswählen

In [44]: arr2 = [[0] * 3 for i in range(4)]

In [45]: arr2
Out[45]: [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

In [46]: arr2[1][2] = 13

In [47]: arr2
Out[47]: [[0, 0, 0], [0, 0, 13], [0, 0, 0], [0, 0, 0]]

In [48]: arrgh2 = [[0] * 3] * 4 

In [49]: arrgh2
Out[49]: [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

In [50]: arrgh2[1][2] = 13

In [51]: arrgh2
Out[51]: [[0, 0, 13], [0, 0, 13], [0, 0, 13], [0, 0, 13]]

In [52]: id(arr2[0])
Out[52]: 3079328236L

In [53]: id(arr2[1])
Out[53]: 3079330252L

In [54]: id(arrgh2[0])
Out[54]: 3079338188L

In [55]: id(arrgh2[1])
Out[55]: 3079338188L
:wink:
yipyip

Verfasst: Dienstag 11. November 2008, 19:47
von Qubit
yipyip hat geschrieben:Noch'n kleiner Tip:
Ja, man muss sich alles nur richtig "hinschreiben" ;-)

Code: Alles auswählen

>>> m=[
	[1,2,3],
	[4,5,6],
	[7,8,9]]
>>> m[0][0]
1
>>> m[1][1]
5
>>> m[2][2]
9
>>>