[Python-de] mehrdimensionale Arrays

"Martin v. Löwis" martin at v.loewis.de
Die Jul 26 21:59:08 CEST 2005


Stefan Miefert wrote:
> wie verwirkliche ich sowas ähnliches mit Python
> 
> z.B.
> 
> array[name][1]="Frank"
> array[name][2]="Michael"
> array[strasse][1]="Lindenstraße"

Es ist mir nicht ganz klar, was genau das ausdrücken
soll: geht es um zwei Personen, Frank und Michael,
wobei Frank in der Lindenstrasse wohnt, oder um eine
Person, mit zwei Namen (Frank Michael)?

Angenommen, es geht um letzteres: also array ist
eine Person. Dann empfehle ich

class Person:
   def __init__(self, namen, strasse):
       self.namen = namen
       self.strasse = strasse

array = Person(['Frank', 'Michael'], 'Lindenstraße')
# obwohl array jetzt ein unglücklicher Variablenname
# ist, weil es ja *eine* Person enthält, kein array.

print array.namen[0] # Indizierung fängt von 0 an
print array.namen[1]
print array.strasse

Willst Du die Person lieber schrittweise aufbauen,
musst Du den Konstruktor leer lassen

class Person:
  def __init__(self):
    self.name = []
    self.strasse = []

derfrank = Person()
derfrank.name.append("Frank")
derfrank.name.append("Michael")
derfrank.strasse.append("Lindenstrasse")

Ciao,
Martin