2d Array in Python

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.
alfonsospringer
User
Beiträge: 34
Registriert: Sonntag 24. August 2008, 21:50

2d Array in Python

Beitragvon alfonsospringer » Dienstag 11. November 2008, 18:57

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
DasIch
User
Beiträge: 2423
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Dienstag 11. November 2008, 19:01

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 11. November 2008, 19:02

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]
My god, it's full of CARs! | Leonidasvoice vs Modvoice
alfonsospringer
User
Beiträge: 34
Registriert: Sonntag 24. August 2008, 21:50

Beitragvon alfonsospringer » Dienstag 11. November 2008, 19:02

Jep, das ist genau das was ich suchte. Eigentlich auch logisch. Eine Liste, deren Elemente weitere Listen sind. Dankeschön. Schöne Lösung
Zuletzt geändert von alfonsospringer am Dienstag 11. November 2008, 19:05, insgesamt 1-mal geändert.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 11. November 2008, 19:04

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
DasIch
User
Beiträge: 2423
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Dienstag 11. November 2008, 19:04

Die kommen von IPython, einer Python Shell.
alfonsospringer
User
Beiträge: 34
Registriert: Sonntag 24. August 2008, 21:50

Beitragvon alfonsospringer » Dienstag 11. November 2008, 19:05

Wow, ihr seit ja flott. Vielen dank
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Beitragvon yipyip » Dienstag 11. November 2008, 19:35

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
Qubit
User
Beiträge: 75
Registriert: Dienstag 7. Oktober 2008, 09:07

Beitragvon Qubit » Dienstag 11. November 2008, 19:47

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
>>>

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder