Mehrdimensionale Arrays in Python.. Wie ?
Hallo Irgendwie stehe ich auf Kriegsfuß mit dem Array-Konzept Pythons. Ich möchte so etwas wie Array-Zeilen haben, wie z.B.: ["erster Eintrag","zweiter Eintrag","dritter Eintrag"] Dann möchte ich daran eine nächste Arrayzeile anhängen können usw. Diese weiteren Zeilen hole ich mir z.B. mit einer Funktion in einer Schleife. Das heißt, das Array wächst zur Laufzeit und wird also nicht im Vornherein fest angelegt. Der Zugriff sollte mittels zweier Indexe erfolgen: Der erste für die Arrayzeile, der zweite für den Eintrag in der jeweiligen Zeile. Beispiel: TestArray = ["abc","1234"] TestArray.append(["def","5678"]) TestArray.append(["ghi","9ABC"]) TestArray.append(["jkl","DEFG"]) print(TestArray[0][0]) Das sollte "abc" ergeben, tats. aber erhalte ich: "a" print(TestArray[1][1]) Das sollte "5678" ergeben, tats. aber erhalte ich: "2" Auch wenn ich mit dem Doppelpunkt experimentiere (wie z.B. TestArray[1:][1]) erhalte ich nichts nachvollziehbares. Statt "append" habe ich auch schon anderes versucht .. Das Netz gibt nichts wirklich sinnvolles her. Mit "numpy" wird es auch nicht besser. Wie kann ich also sinnvoll mit Arrays umgehen ? So, wie man es z.B. aus C kennt ? -- Gruß, Greetings
wolfgang bauer (D) <schutz@gmx.de> schrieb: Hallo Wolfgang,
Hallo
Irgendwie stehe ich auf Kriegsfuß mit dem Array-Konzept Pythons.
Ich möchte so etwas wie Array-Zeilen haben, wie z.B.: ["erster Eintrag","zweiter Eintrag","dritter Eintrag"]
Dann möchte ich daran eine nächste Arrayzeile anhängen können usw. Diese weiteren Zeilen hole ich mir z.B. mit einer Funktion in einer Schleife. Das heißt, das Array wächst zur Laufzeit und wird also nicht im Vornherein fest angelegt.
Der Zugriff sollte mittels zweier Indexe erfolgen: Der erste für die Arrayzeile, der zweite für den Eintrag in der jeweiligen Zeile.
Beispiel:
TestArray = ["abc","1234"] TestArray.append(["def","5678"]) TestArray.append(["ghi","9ABC"]) TestArray.append(["jkl","DEFG"])
print(TestArray[0][0]) Das sollte "abc" ergeben, tats. aber erhalte ich: "a"
print(TestArray[1][1]) Das sollte "5678" ergeben, tats. aber erhalte ich: "2"
Auch wenn ich mit dem Doppelpunkt experimentiere (wie z.B. TestArray[1:][1]) erhalte ich nichts nachvollziehbares.
Statt "append" habe ich auch schon anderes versucht ..
Das Netz gibt nichts wirklich sinnvolles her. Mit "numpy" wird es auch nicht besser.
Wie kann ich also sinnvoll mit Arrays umgehen ? So, wie man es z.B. aus C kennt ?
Ändere mal de erste Zeile in TestArray = [["abc","1234"]] Du sieht den Unterschied der TestArrays wenn Du die interaktiv als TestArray ausgibst oder print(TestArray) im Code einbaust. Noch viel Erfolg beim Lernen, ich bin dafür ein Laie in C. Viele Grüße, Christoph
21.12.21 , 20:33 , Christoph Brinkhaus:
Ändere mal de erste Zeile in TestArray = [["abc","1234"]]
Du sieht den Unterschied der TestArrays wenn Du die interaktiv als TestArray ausgibst oder print(TestArray) im Code einbaust.
Danke! Das war die erhoffte Lösung. Der Zugriff läuft nun wie erwartet. :-) -- Gruß, Greetings
Am 21.12.21 um 19:39 schrieb wolfgang bauer (D):
Hallo
Irgendwie stehe ich auf Kriegsfuß mit dem Array-Konzept Pythons.
Ich möchte so etwas wie Array-Zeilen haben, wie z.B.: ["erster Eintrag","zweiter Eintrag","dritter Eintrag"]
Dann möchte ich daran eine nächste Arrayzeile anhängen können usw. Diese weiteren Zeilen hole ich mir z.B. mit einer Funktion in einer Schleife. Das heißt, das Array wächst zur Laufzeit und wird also nicht im Vornherein fest angelegt.
Der Zugriff sollte mittels zweier Indexe erfolgen: Der erste für die Arrayzeile, der zweite für den Eintrag in der jeweiligen Zeile.
Beispiel:
TestArray = ["abc","1234"] TestArray.append(["def","5678"]) TestArray.append(["ghi","9ABC"]) TestArray.append(["jkl","DEFG"])
Weitere Alternative: TestArray = [] TestArray.append(["abc","1234"]) ..
Statt "append" habe ich auch schon anderes versucht ..
TestArray=[ ["abc","1234"],["def","5678"], ["ghi","9ABC"],["jkl","DEFG"] ]
Wie kann ich also sinnvoll mit Arrays umgehen ? So, wie man es z.B. aus C kennt ?
Stelle Dir ein Python array als ein array von pointer in C vor, die auf Elemente vom beliebigen Typ zeigen. So ein Typ kann wieder ein array sein. Ein C struct bilde ich auf eine Python Klasse ab. struct { int x,y } A; sähe in Python etwa so aus: class A: def __init__(self): self.x=0 self.y=0 Da Layout liegt in C fest in Python nicht. Da geht auch: class A: def __init__(self): pass u=A() u.x=0 u.y=0 Hermann der nach ca 10 Haupt Programmierprache C ca 10 jahre Hauptprogrammiersprache Python verwendet. ( Und immer 3+n statt 4*n einrückt. n von 0 bis ) -- http://www.hermann-riemann.de
participants (3)
-
Christoph Brinkhaus
-
Hermann Riemann
-
wolfgang bauer (D)