Python - Wörterbuch
Jeder Schlüssel ist durch einen Doppelpunkt (:) von seinem Wert getrennt, die Elemente sind durch Kommas getrennt und das Ganze ist 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: unhashable type: 'list'
Integrierte Wörterbuchfunktionen und -methoden
Python enthält die folgenden Wörterbuchfunktionen:
Sr.Nr. | Funktion mit Beschreibung |
---|---|
1 | cmp (dict1, dict2) Vergleicht Elemente beider Diktate. |
2 | len (dikt) Gibt die Gesamtlänge des Wörterbuchs an. Dies entspricht der Anzahl der Elemente im Wörterbuch. |
3 | str (dikt) Erzeugt eine druckbare Zeichenfolgendarstellung eines Wörterbuchs |
4 | Typ (Variable) Gibt den Typ der übergebenen Variablen zurück. Wenn die übergebene Variable ein Wörterbuch ist, wird ein Wörterbuchtyp zurückgegeben. |
Python enthält die folgenden Wörterbuchmethoden:
Sr.Nr. | Methoden mit Beschreibung |
---|---|
1 | dict.clear () Entfernt alle Elemente des Wörterbuch- Diktats |
2 | dict.copy () Gibt eine flache Kopie des Wörterbuchs dikt zurück |
3 | dict.fromkeys () Erstellen Sie ein neues Wörterbuch mit Schlüsseln aus seq und Werten, die auf value gesetzt sind . |
4 | dict.get (Schlüssel, Standard = Keine) Für Schlüssel Schlüssel, gibt Wert oder Standard , wenn Schlüssel nicht im Wörterbuch |
5 | dict.has_key (Schlüssel) Gibt true zurück, wenn das Wörterbuch dikt eingegeben wurde , andernfalls false |
6 | dict.items () Gibt eine Liste der Tupelpaare von dict (Schlüssel, Wert) zurück |
7 | dict.keys () Gibt eine Liste der Schlüssel des Wörterbuchs zurück |
8 | dict.setdefault (Schlüssel, Standard = Keine) Ähnlich wie get (), setzt jedoch dict [key] = default, wenn key noch nicht in dict enthalten ist |
9 | dict.update (dict2) Fügt Wörterbuch dict2 ‚s Schlüsselwerte - Paare zu dict |
10 | dict.values () Gibt eine Liste der Werte des Wörterbuchs dikt zurück |