Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
Python Dictionary
Dieser umfassende Leitfaden erklärt Python-Dictionaries – wie man sie erstellt, auf Elemente zugreift, hinzufügt, löscht und eingebaute Methoden nutzt.
Video: Python Dictionaries zum Speichern von Schlüssel/Wert-Paaren
Python-Dictionaries sind ungeordnete Sammlungen von Schlüssel/Wert-Paaren. Jeder Eintrag ordnet einem einzigartigen, unveränderlichen Schlüssel einen Wert zu, der jeden Typ haben kann.
Ein Python-Dictionary erstellen
Die Definition eines Dictionaries ist unkompliziert: Setzen Sie kommagetrennte Schlüssel/Wert-Paare in geschweifte Klammern {}. Schlüssel müssen unveränderlich sein (Strings, Zahlen oder Tupel aus unveränderlichen Elementen) und eindeutig; Werte können jeden Datentyp haben und sich wiederholen.
# leeres Dictionary
my_dict = {}
# Dictionary mit ganzzahligen Schlüsseln
my_dict = {1: 'Apfel', 2: 'Ball'}
# Dictionary mit gemischten Schlüsseln
my_dict = {'name': 'Hans', 1: [2, 4, 3]}
# mit dict()
my_dict = dict({1:'Apfel', 2:'Ball'})
# aus Sequenz von Paaren
my_dict = dict([(1,'Apfel'), (2,'Ball')])
All diese Ansätze erzeugen die gleiche Dictionary-Struktur.
Auf Dictionary-Elemente zugreifen
Dictionary-Werte werden über ihre Schlüssel abgerufen, entweder mit eckigen Klammern [] oder der get()-Methode. Die Verwendung von Klammern löst einen KeyError aus, wenn der Schlüssel fehlt; get() gibt standardmäßig None zurück.
# get vs [] für den Elementzugriff
my_dict = {'name': 'Hans', 'alter': 26}
# Ausgabe: Hans
print(my_dict['name'])
# Ausgabe: 26
print(my_dict.get('alter'))
# Zugriff auf fehlenden Schlüssel gibt None zurück
print(my_dict.get('adresse'))
# KeyError
print(my_dict['adresse'])
Ausgabe
Hans 26 None Traceback (most recent call last): File "<string>", line 15, in <module> print(my_dict['adresse']) KeyError: 'adresse'
Dictionary-Elemente ändern und hinzufügen
Dictionaries sind veränderbar. Die Zuweisung an einen bestehenden Schlüssel aktualisiert dessen Wert; die Zuweisung an einen neuen Schlüssel fügt einen frischen Eintrag hinzu.
# Dictionary-Elemente ändern und hinzufügen
my_dict = {'name': 'Hans', 'alter': 26}
# Wert aktualisieren
my_dict['alter'] = 27
# Ausgabe: {'alter': 27, 'name': 'Hans'}
print(my_dict)
# Element hinzufügen
my_dict['adresse'] = 'Innenstadt'
# Ausgabe: {'adresse': 'Innenstadt', 'alter': 27, 'name': 'Hans'}
print(my_dict)
Ausgabe
{'name': 'Hans', 'alter': 27} {'name': 'Hans', 'alter': 27, 'adresse': 'Innenstadt'}
Elemente aus einem Dictionary entfernen
Verwenden Sie pop(), um einen bestimmten Schlüssel zu löschen und seinen Wert abzurufen. popitem() entfernt ein beliebiges Paar, während clear() das gesamte Dictionary leert. Das Schlüsselwort del kann einzelne Einträge oder die gesamte Variable löschen.
# Elemente aus einem Dictionary entfernen
# Dictionary erstellen
quadrate = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# bestimmtes Element entfernen, gibt dessen Wert zurück
# Ausgabe: 16
print(quadrate.pop(4))
# Ausgabe: {1: 1, 2: 4, 3: 9, 5: 25}
print(quadrate)
# beliebiges Element entfernen, (key,value) zurückgeben
# Ausgabe: (5, 25)
print(quadrate.popitem())
# Ausgabe: {1: 1, 2: 4, 3: 9}
print(quadrate)
# alle Elemente entfernen
quadrate.clear()
# Ausgabe: {}
print(quadrate)
# Dictionary selbst löschen
del quadrate
# Wirft Fehler
print(quadrate)
Ausgabe
16 {1: 1, 2: 4, 3: 9, 5: 25} (5, 25) {1: 1, 2: 4, 3: 9} {} Traceback (most recent call last): File "<string>", line 30, in <module> print(quadrate) NameError: name 'quadrate' is not defined
Python Dictionary-Methoden
Die folgende Tabelle listet gängige Dictionary-Methoden und ihre Zwecke auf. Viele werden in den folgenden Beispielen demonstriert.
| Methode | Beschreibung |
|---|---|
| clear() | Entfernt alle Elemente aus dem Dictionary. |
| copy() | Gibt eine flache Kopie des Dictionaries zurück. |
| fromkeys(seq[, v]) | Erstellt ein neues Dictionary aus seq mit jedem Schlüssel auf v gesetzt (Standard None). |
| get(key[,d]) | Gibt den Wert für key zurück; falls abwesend, gibt d zurück (Standard None). |
| items() | Gibt eine Ansicht der (Schlüssel, Wert)-Paare des Dictionaries zurück. |
| keys() | Gibt eine Ansicht der Schlüssel des Dictionaries zurück. |
| pop(key[,d]) | Löscht key und gibt dessen Wert oder d zurück; löst KeyError aus, wenn key fehlt und d nicht angegeben. |
| popitem() | Entfernt und gibt ein beliebiges (Schlüssel, Wert)-Paar zurück; löst KeyError aus, wenn Dictionary leer. |
| setdefault(key[,d]) | Gibt den Wert für key zurück; falls abwesend, fügt key mit Wert d (Standard None) ein und gibt d zurück. |
| update([other]) | Fügt Schlüssel/Wert-Paare aus other ein oder aktualisiert sie, überschreibt bestehende Schlüssel. |
| values() | Gibt eine Ansicht der Werte des Dictionaries zurück. |
Beispielverwendung:
# Dictionary-Methoden
noten = {}.fromkeys(['Mathe', 'Englisch', 'Naturwissenschaften'], 0)
# Ausgabe: {'Englisch': 0, 'Mathe': 0, 'Naturwissenschaften': 0}
print(noten)
for item in noten.items():
print(item)
# Ausgabe: ['Englisch', 'Mathe', 'Naturwissenschaften']
print(list(sorted(noten.keys())))
Ausgabe
{'Mathe': 0, 'Englisch': 0, 'Naturwissenschaften': 0} ('Mathe', 0) ('Englisch', 0) ('Naturwissenschaften', 0) ['Englisch', 'Mathe', 'Naturwissenschaften']
Python Dictionary Comprehension
Dictionary Comprehension bietet eine prägnante Syntax zum Erstellen von Dictionaries aus Iterables. Sie folgt dem Muster {key: value for element in iterable}.
# Dictionary Comprehension
quadrate = {x: x*x for x in range(6)}
print(quadrate)
Ausgabe
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Äquivalente imperative Version:
quadrate = {}
for x in range(6):
quadrate[x] = x*x
print(quadrate)
Ausgabe
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Comprehensions können mehrere Schleifen und if-Filter enthalten. Beispiel: nur ungerade Quadrate.
# Dictionary Comprehension mit if-Bedingung
ungerade_quadrate = {x: x*x for x in range(11) if x % 2 == 1}
print(ungerade_quadrate)
Ausgabe
{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
Mehr zu Dictionary Comprehensions unter Python Dictionary Comprehension.
Weitere Dictionary-Operationen
Dictionary-Mitgliedschaftstest
Verwenden Sie den in-Operator, um zu prüfen, ob ein Schlüssel existiert; er prüft nicht die Werte.
# Mitgliedschaftstest für Dictionary-Schlüssel
quadrate = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Ausgabe: True
print(1 in quadrate)
# Ausgabe: True
print(2 not in quadrate)
# Mitgliedschaftstests nur für Schlüssel, nicht für Werte
# Ausgabe: False
print(49 in quadrate)
Ausgabe
True True False
Durch ein Dictionary iterieren
Iterieren Sie direkt über Schlüssel und greifen Sie dann auf Werte zu.
# Durch ein Dictionary iterieren
quadrate = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in quadrate:
print(quadrate[i])
Ausgabe
1 9 25 49 81
Dictionary-Eingebaute-Funktionen
Standardfunktionen wie all(), any(), len() und sorted() werden häufig auf Dictionaries angewendet.
| Funktion | Beschreibung |
|---|---|
| all() | True, wenn jeder Schlüssel zu True evaluiert (oder Dictionary leer ist). |
| any() | True, wenn irgendein Schlüssel zu True evaluiert; False für leeres Dictionary. |
| len() | Anzahl der Schlüssel/Wert-Paare. |
| cmp() | Vergleicht zwei Dictionaries (in Python 3 entfernt). |
| sorted() | Gibt eine sortierte Liste der Schlüssel zurück. |
Beispiele:
# Dictionary-Eingebaute-Funktionen
quadrate = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Ausgabe: False
print(all(quadrate))
# Ausgabe: True
print(any(quadrate))
# Ausgabe: 6
print(len(quadrate))
# Ausgabe: [0, 1, 3, 5, 7, 9]
print(sorted(quadrate))
Ausgabe
False True 6 [0, 1, 3, 5, 7, 9]
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- 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
- Python Strings meistern: Erstellung, Zugriff und Manipulation