Mehrdimensionale Arrays in Python.. Wie ?

4 views
Skip to first unread message

wolfgang bauer (D)

unread,
Dec 21, 2021, 1:40:00 PM12/21/21
to

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

Christoph Brinkhaus

unread,
Dec 21, 2021, 2:33:43 PM12/21/21
to
wolfgang bauer (D) <sch...@gmx.de> schrieb:

Hallo Wolfgang,
Ä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

wolfgang bauer (D)

unread,
Dec 21, 2021, 3:05:36 PM12/21/21
to
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

Hermann Riemann

unread,
Dec 22, 2021, 11:29:17 AM12/22/21
to
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
Reply all
Reply to author
Forward
0 new messages