Python Dictionary Grundlagen: Keys, Values und Zugriff
Was ist ein Dictionary in Python?
Jeder Schlüssel wird durch einen Doppelpunkt (:) von seinem Wert getrennt, die Elemente werden durch Kommas getrennt, und das Ganze wird in geschweiften Klammern eingeschlossen. Ein leeres Dictionary ohne Elemente wird mit nur zwei geschweiften Klammern geschrieben: {}.
Schlüssel sind innerhalb eines Dictionaries eindeutig, während Werte dies nicht sein müssen. Die Werte eines Dictionaries können jeden Typ haben, aber die Schlüssel müssen von einem unveränderlichen Datentyp sein, wie Strings, Zahlen oder Tupel.
Zugriff auf Werte im Dictionary
Um auf Dictionary-Elemente zuzugreifen, können Sie die gewohnten eckigen Klammern zusammen mit dem Schlüssel verwenden, um seinen Wert zu erhalten. 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, erzeugt er folgendes Ergebnis:
dict['Name']: Zara dict['Age']: 7
Wenn wir versuchen, auf ein Datenelement mit einem Schlüssel zuzugreifen, der nicht Teil des Dictionaries ist, erhalten wir einen Fehler:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']
Wenn der obige Code ausgeführt wird, erzeugt er folgendes Ergebnis:
dict['Alice']: Traceback (most recent call last): File "test.py", line 4, inprint "dict['Alice']: ", dict['Alice']; KeyError: 'Alice'
Dictionary aktualisieren
Sie können ein Dictionary aktualisieren, indem Sie einen neuen Eintrag oder ein Schlüssel-Wert-Paar hinzufügen, einen bestehenden Eintrag ändern oder einen bestehenden Eintrag löschen, wie im folgenden einfachen Beispiel gezeigt:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # Bestehenden Eintrag aktualisieren
dict['School'] = "DPS School"; # Neuen Eintrag hinzufügen
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
Wenn der obige Code ausgeführt wird, erzeugt er folgendes Ergebnis:
dict['Age']: 8 dict['School']: DPS School
Dictionary-Elemente löschen
Sie können entweder einzelne Dictionary-Elemente entfernen oder den gesamten Inhalt eines Dictionaries löschen. Sie können auch das gesamte Dictionary in einer einzigen Operation löschen.
Um ein ganzes Dictionary explizit zu entfernen, verwenden Sie einfach die del-Anweisung. Ein einfaches Beispiel:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # Eintrag mit Schlüssel 'Name' entfernen
dict.clear(); # Alle Einträge im dict entfernen
del dict; # Ganzes Dictionary löschen
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
Dies erzeugt folgendes Ergebnis. Beachten Sie, dass eine Exception ausgelöst wird, da nach del dict das Dictionary nicht mehr existiert:
dict['Age']: Traceback (most recent call last): File "test.py", line 8, inprint "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable
Hinweis – Die del()-Methode wird im nächsten Abschnitt besprochen.
Eigenschaften von Dictionary-Schlüsseln
Dictionary-Werte haben keine Einschränkungen. Sie können beliebige Python-Objekte sein, entweder Standardobjekte oder benutzerdefinierte Objekte. Für Schlüssel gilt dies nicht.
Es gibt zwei wichtige Punkte zu Dictionary-Schlüsseln:
(a) Mehr als ein Eintrag pro Schlüssel ist nicht erlaubt. Das bedeutet, keine doppelten Schlüssel sind erlaubt. Wenn doppelte Schlüssel bei der Zuweisung auftreten, 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, erzeugt er folgendes Ergebnis:
dict['Name']: Manni
(b) Schlüssel müssen unveränderlich (immutable) sein. Das bedeutet, Sie können Strings, Zahlen oder Tupel als Dictionary-Schlüssel verwenden, aber etwas wie ['key'] (eine Liste) ist nicht erlaubt. Einfaches Beispiel:
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']
Wenn der obige Code ausgeführt wird, erzeugt er folgendes Ergebnis:
Traceback (most recent call last): File "test.py", line 3, indict = {['Name']: 'Zara', 'Age': 7}; TypeError: unhashable type: 'list'
Eingebaute Dictionary-Funktionen & Methoden
Python enthält folgende Dictionary-Funktionen:
| Nr. | Funktion & Beschreibung |
|---|---|
| 1 | cmp(dict1, dict2) – Vergleicht Elemente beider Dictionaries. |
| 2 | len(dict) – Gibt die Gesamtlänge des Dictionaries (Anzahl der Einträge). |
| 3 | str(dict) – Erzeugt eine druckbare String-Darstellung eines Dictionaries. |
| 4 | type(variable) – Gibt den Typ der übergebenen Variable zurück. Wenn Dictionary, dann Dictionary-Typ. |
Python enthält folgende Dictionary-Methoden:
| Nr. | Methode & Beschreibung |
|---|---|
| 1 | dict.clear() – Entfernt alle Elemente des Dictionaries dict |
| 2 | dict.copy() – Gibt eine flache Kopie des Dictionaries dict zurück |
| 3 | dict.fromkeys() – Erstellt neues Dictionary mit Keys aus seq und Values auf value gesetzt |
| 4 | dict.get(key, default=None) – Für key gibt Wert oder default zurück, falls Key nicht im Dictionary |
| 5 | dict.has_key(key) – Gibt true zurück, wenn Key in Dictionary dict, sonst false |
| 6 | dict.items() – Gibt Liste der (key, value)-Tupelpaare von dict zurück |
| 7 | dict.keys() – Gibt Liste der Keys von Dictionary dict zurück |
| 8 | dict.setdefault(key, default=None) – Ähnlich wie get(), setzt aber dict[key]=default wenn Key nicht in dict |
| 9 | dict.update(dict2) – Fügt Key-Value-Paare von dict2 zu dict hinzu |
| 10 | dict.values() – Gibt Liste der Values von Dictionary dict zurück |
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
- Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
- Python Überblick: Hochlevel, lesbar, interaktiv & objektorientiert
- Python Zahlen: Unveränderliche numerische Datentypen verstehen