Zuordnungen in Python
Ein Tupel ordnet Zahlen Bindungsstellen und somit Objekte zu. Wir können ein Tupel, das den ersten drei Zahlen die Buchstaben »a«, »b« und »c« folgendermaßen schreiben.
- Schreibweise eines Tupels
( "a", "b", "c" )
- Zuordnungstabelle des obenstehenden Tupels
0 --> "a"
1 --> "b"
2 --> "c"- Verwendung eines Tupels
t =( "a", "b", "c" )
t[ 1 ]
'b'
Solch eine Zuordnung läßt sich auch unter ausdrücklicher Angabe der Zahlen schreiben, wenn geschweifte Klammern und Doppelpunkte verwendet werden.
- Schreibweise einer Zuordnung
{ 0: "a", 1: "b", 2: "c" }
- obenstehende Zuordnung als Tabelle
0 --> "a"
1 --> "b"
2 --> "c"- Verwendung einer Zuordnung
z ={ 0: "a", 1: "b", 2: "c" }
z[ 1 ]
'b'
Solche Zuordnungen erlauben es dann auch, beliebige Objekte beliebigen anderen Objekten zuzuordnen.
- Untenstehende Zuordnung als Tabelle
... --> False
False --> True
"a" --> 4
2 --> None
None --> 2- Konsolenprotokoll (gekürzt und mit übersetzter Fehlermeldung)
z ={ ...: False, False: True, "a": 4, 2: None, None: 2 }
z[ ... ]
False
z[ False ]
True
z[ z[ ... ]]
True
z[ "a" ]
4
z[ 2 ]
print( z[ 2 ])
None
z[ None ]
2
z[ 3 ]
SchlüsselFehler: 3
Der Typ einer Zuordnung ist ›dict‹.
- Konsolenprotokoll (Fortsetzung)
type( z )
<class 'dict'>
Nur die leere Zuordnung gilt als falsch.
- Konsolenprotokoll
bool( dict() )
False
bool( {} )
False
bool( { 1: 1 } )
True
- Konsolenprotokoll
dict( a=1, xyz=2, t=[] )
{'a': 1, 'xyz': 2, 't': []}
Kopieren
- Konsolenprotokoll
{ 1: 1 }.copy()
Fehler durch versehentliches Umbinden
- Umbinden
dict ={ 0: "a", 1: "b", 2: "c" }
- … später
dict( a=1, xyz=2, t=[] )
TypeError: 'dict' object is not callable
- Korrektur
dict_ ={ 0: "a", 1: "b", 2: "c" }
Übungsaufgaben
Wenn eine Funktion definiert werden soll, so wird dadurch nicht ausgeschlossen, daß zuvor weitere Hilfsfunktionen definiert, erprobt und dann in der Funktion benutzt werden.
/ Übersetzung
Schreiben Sie eine Funktion, die in einem Text jedes Wort durch das Wort ersetzt, welches ihm durch ›d‹ zugeordnet wird.
- Zuordnung
d = { "disrupt": "perturbent", "our": "notre", "they": "ils", "vision": "vision" }
e = "they disrupt our vision"
t( e )
'Ils perturbent notre vision'