Python - Wörterbuch

Im Wörterbuch wird jeder Schlüssel durch einen Doppelpunkt (:) von seinem Wert getrennt, die Elemente werden durch Kommas getrennt und das Ganze wird in geschweiften Klammern eingeschlossen. Ein leeres Wörterbuch ohne Elemente wird mit nur zwei geschweiften Klammern wie folgt geschrieben: {}.

Schlüssel sind innerhalb eines Wörterbuchs eindeutig, Werte jedoch möglicherweise nicht. Die Werte eines Wörterbuchs können von einem beliebigen Typ sein, die Schlüssel müssen jedoch von einem unveränderlichen Datentyp sein, z. B. Zeichenfolgen, Zahlen oder Tupel.

Zugriff auf Werte im Wörterbuch

Um auf Wörterbuchelemente zuzugreifen, können Sie die bekannten eckigen Klammern zusammen mit dem Schlüssel verwenden, um dessen Wert zu erhalten. Das Folgende ist ein einfaches Beispiel -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

dict['Name']:  Zara
dict['Age']:  7

Wenn wir versuchen, mit einem Schlüssel, der nicht Teil des Wörterbuchs ist, auf ein Datenelement zuzugreifen, wird folgende Fehlermeldung angezeigt:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

dict['Alice']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

Wörterbuch aktualisieren

Sie können ein Wörterbuch aktualisieren, indem Sie einen neuen Eintrag oder ein Schlüssel-Wert-Paar hinzufügen, einen vorhandenen Eintrag ändern oder einen vorhandenen Eintrag löschen, wie unten im einfachen Beispiel gezeigt.

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

dict['Age']:  8
dict['School']:  DPS School

Wörterbuchelemente löschen

Sie können entweder einzelne Wörterbuchelemente entfernen oder den gesamten Inhalt eines Wörterbuchs löschen. Sie können auch das gesamte Wörterbuch in einem einzigen Vorgang löschen.

Um ein gesamtes Wörterbuch explizit zu entfernen, verwenden Sie einfach die delErklärung. Das Folgende ist ein einfaches Beispiel -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear();     # remove all entries in dict
del dict ;        # delete entire dictionary

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Dies führt zu folgendem Ergebnis. Beachten Sie, dass eine Ausnahme ausgelöst wird, weil nachdel dict Wörterbuch existiert nicht mehr -

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Note Die Methode del () wird im folgenden Abschnitt erläutert.

Eigenschaften von Wörterbuchschlüsseln

Wörterbuchwerte unterliegen keinen Einschränkungen. Dies können beliebige Python-Objekte sein, entweder Standardobjekte oder benutzerdefinierte Objekte. Gleiches gilt jedoch nicht für die Schlüssel.

Bei Wörterbuchschlüsseln sind zwei wichtige Punkte zu beachten:

(a)Mehr als ein Eintrag pro Schlüssel nicht erlaubt. Dies bedeutet, dass kein doppelter Schlüssel zulässig ist. Wenn während der Zuweisung doppelte Schlüssel gefunden werden, gewinnt die letzte Zuweisung. Zum Beispiel -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

dict['Name']:  Manni

(b)Schlüssel müssen unveränderlich sein. Das heißt, Sie können Zeichenfolgen, Zahlen oder Tupel als Wörterbuchschlüssel verwenden, aber so etwas wie ['Schlüssel'] ist nicht zulässig. Das Folgende ist ein einfaches Beispiel -

#!/usr/bin/python

dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable