Kapitel 4
Standard-Datentypen
106
4.10.7 Veränderbare und unveränderbare Sequenzen
Tupel und Strings sind unveränderbare Sequenzen (immutable). Sie können zwar insgesamt
gelöscht oder ersetzt werden, aber einzelne Elemente können nicht verändert werden.
Listen dagegen sind veränderbar (mutable). Beispiel:
Unveränderbare Objekte (wie Tupel und Strings) haben noch eine weitere Eigenschaft: Es
gibt keine zwei gleichen unveränderbaren Objekte mit unterschiedlicher Identität. Wenn
zwei unveränderbare Objekte gleich sind, sind sie auch identisch. Das sei am Beispiel von
Strings gezeigt:
Wie man am Ergebnis der
id()-Funktionsaufrufe sieht, besitzen die Objekte mit den
Namen
s und t dieselbe Identität, das heißt, es sind zwei Namen für dasselbe Objekt. Bei
Listen ist das anders. Im folgenden Beispiel werden zwei gleiche Listen-Objekte mit unter-
schiedlicher Identität generiert:
Abbildung 4.4 illustriert den Unterschied.
>>> b = (1, 2)
>>> b[0] = 2 # Objekt kann nicht geändert werden
Traceback (most recent call last):
File "<pyshell#38>", line 1, in ?
b[0] = 2
TypeError: object doesn't support item assignment
>>> a = [1, 2]
>>> a[0] = 2 # Änderung des ersten Elementes der Liste
>>> a
[2, 2]
>>> s = "Mond"
>>> t = "Mond"
>>> id(s)
17972992
>>> id(t)
17972992
>>> a = [1, 2]
>>> id(a)
11522336
>>> b = [1, 2]
>>> id(b)
11573888

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.