Listen
Tupel sind zur Programmierung also schonmal nicht schlecht, zumindest solange es sich um statische Daten handelt. In der Praxis will man aber komplexe Daten verarbeiten, worunter neben Ergänzungen und Löschungen auch die Veränderung einzelner Datenteile gehört, wie z.B. bei einer Kundenverwaltung die Möglichkeit, bei einem Umzug lediglich die Adresse des Kundens zu ändern, anstatt den Kunden neu anlegen zu müssen.
Dazu bietet Python Listen an, die ähnlich wie Tupel funktionieren, jedoch auch wilde Veränderungen erlauben:
Mehrdimensionale Listen sind ebenfalls möglich, wobei auch hier dasselbe gilt wie bei Tupeln.
Aliasing
Einen Unterschied gibt es, der als Aliasing bezeichnet wird: Was bei Strings und gewöhnlichen Variablen zu einer Kopie des Wertes (Objektes) führt, führt bei Listen lediglich zu einer weiteren Namenszuweisung:
Listen verfügen aber über eine sogenannte Identität, die bei einer Zuweisung übergeben wird. Dadurch greift man über zwei verschiedene Namen auf dieselben Objekte zu, wie das Beispiel weiter unten zeigt: Borg wird gegen Spezies123 ersetzt, und zwar in der Liste anderesicht. Dies ändert aber auch voelker.
Dazu bietet Python Listen an, die ähnlich wie Tupel funktionieren, jedoch auch wilde Veränderungen erlauben:
>>> begruessungen=["Guten Morgen",'Moin',"Hello","Guten Abend"]
>>> print begruessungen
['Guten Morgen', 'Moin', 'Hello', 'Guten Abend']
>>> print begruessungen[1]
Moin
>>> len(begruessungen)
4
>>> len(begruessungen[0])
12
>>> begruessungen[0:2]
['Guten Morgen', 'Moin']
>>> begruessungen[3]
'Guten Abend'
>>> begruessungen[2]
'Hello'
>>> begruessungen[2]="Hallo"
>>> begruessungen
['Guten Morgen', 'Moin', 'Hallo', 'Guten Abend']
Listen werden also über eckige Klammern erzeugt, wobei der Inhalt, genauso wie bei Tupeln, unterschiedliche Typen umfassen darf. Mittels len() läßt sich die Anzahl Elemente der gesamten Liste, oder einzelner Listenelemente, ausgeben. Genau wie bei Tupeln kann man auf einzelne Elemente, oder auf eine Reihe von Elemente via [x:y] zugreifen.Mehrdimensionale Listen sind ebenfalls möglich, wobei auch hier dasselbe gilt wie bei Tupeln.
Aliasing
Einen Unterschied gibt es, der als Aliasing bezeichnet wird: Was bei Strings und gewöhnlichen Variablen zu einer Kopie des Wertes (Objektes) führt, führt bei Listen lediglich zu einer weiteren Namenszuweisung:
>>> a=1
>>> b=a
>>> print a,b
1 1
>>> b=2
>>> print a,b
1 2
>>> voelker=['Vulkanier','Klingonen','Bajoraner','Borg']
>>> anderesicht=voelker
>>> anderesicht[3]
'Borg'
>>> anderesicht[3]='Spezies123'
>>> voelker
['Vulkanier', 'Klingonen', 'Bajoraner', 'Spezies123']
Bei a und b, zwei normalen Variablen sieht man, dass zuerst b den Wert von a zugewiesen bekommt, der dann aber verändert wird, ohne das dies zu einer Veränderung von a führt.Listen verfügen aber über eine sogenannte Identität, die bei einer Zuweisung übergeben wird. Dadurch greift man über zwei verschiedene Namen auf dieselben Objekte zu, wie das Beispiel weiter unten zeigt: Borg wird gegen Spezies123 ersetzt, und zwar in der Liste anderesicht. Dies ändert aber auch voelker.
cptsalek - 12. Mai, 13:01