Variablen II: Mehrdimensionalität
Es kommt häufiger vor, dass man nicht einfache Datenreihen speichern will, sondern komplexe, zusammenhängende Datensätze. In diesem Fall ist man mit mehrdimensionalen Feldern ganz gut bedient:
Im Gegensatz zu einigen anderen Sprachen kann die Anzahl der Dimensionen in einem Tupel variieren, was auf der einen Seite positiv für den Speicherverbrauch ist, andererseits aber natürlich bedeutet, dass man selbst dafür Sorge tragen muß, nur auf gültige Daten zuzugreifen. Beispiel:
>>> aufzaehlung=((3.491,"Pi"),(42,"Anhalter"))
>>> aufzaehlung
((3.4910000000000001, 'Pi'), (42, 'Anhalter'))
>>> aufzaehlung[0]
(3.4910000000000001, 'Pi')
>>> aufzaehlung[0][1]
'Pi'
Verwendet man in einem mehrdimensionalen Tupel also lediglich eine "Koordinate", wird der gesamte darin enthaltene Tupel ausgegeben, die zweite Koordinate bestimmt das auszugebende Objekt innerhalb des Tupels.Im Gegensatz zu einigen anderen Sprachen kann die Anzahl der Dimensionen in einem Tupel variieren, was auf der einen Seite positiv für den Speicherverbrauch ist, andererseits aber natürlich bedeutet, dass man selbst dafür Sorge tragen muß, nur auf gültige Daten zuzugreifen. Beispiel:
>>> netzdaten=(("cptsalek","https://cptsalek.twoday.net","cptsalekweb.de"),
... ("cptcalhoun","https://cptcalhoun.twoday.net"))
Hier haben wir einen Tupel namens "netzdaten", der zwei Datensätze enthält, wobei der erste drei Strings umfaßt, der zweite jedoch nur zwei. Es wäre also schön eine Möglichkeit zu haben, sich das im Programm auch ausgeben zu lassen. Gibt es auch:
>>> len(netzdaten)
2
>>> len(netzdaten[0])
3
>>> len(netzdaten[1])
2
>>> len(netzdaten[1][0])
10
Der Befehl len() gibt die Länge eines Objektes zurück. Wird nur "netzdaten" angegeben, umfaßt das Objekt in der Tat zwei Tupel. Der erste Datensatz, bezeichnet durch netzdaten[0], seinem Index, enthält die besagten drei Strings. Der len()-Befehl funktioniert auch bei reinen Strings, wie das letzte Beispiel zeigt, das die Länge des Namens "cptcalhoun" zurückliefert.cptsalek - 11. Mai, 12:43