Python - Verschachtelte Wörterbücher

Hallo dort, ambitiöse Programmierer! Heute werden wir in die faszinierende Welt der verschachtelten Wörterbücher in Python eintauchen. Keine Sorge, wenn du neu bei der Programmierung bist - ich werde dich Schritt für Schritt durch dieses Thema führen, genau wie ich es für unzählige Schüler in meinen Jahren des Unterrichtens getan habe. Also, nimm dir dein Lieblingsgetränk, mache dich komfortabel und lass uns gemeinsam auf diese Python-Abenteuerreise aufbrechen!

Python - Nested Dictionaries

Verschachtelte Wörterbücher

Was sind Verschachtelte Wörterbücher?

Stelle dir vor, du hast eine große Schachtel (das Hauptwörterbuch), und in dieser Schachtel hast du mehrere kleinere Schachteln (die verschachtelten Wörterbücher). Jede dieser kleineren Schachteln kann verschiedene Gegenstände (Schlüssel-Wert-Paare) enthalten. Das ist im Grunde genommen, was ein verschachteltes Wörterbuch ist - ein Wörterbuch innerhalb eines Wörterbuchs.

Lass uns mit einem einfachen Beispiel beginnen:

student = {
"name": "Alice",
"age": 20,
"grades": {
"math": 95,
"science": 88,
"history": 92
}
}

In diesem Beispiel ist student unser Hauptwörterbuch. Es enthält grundlegende Informationen über Alice, einschließlich eines verschachtelten Wörterbuchs grades, das ihre Noten in verschiedenen Fächern enthält.

Erstellen eines Verschachtelten Wörterbuchs in Python

Das Erstellen eines verschachtelten Wörterbuchs ist ähnlich wie das Erstellen eines regulären Wörterbuchs, aber du fügst einem anderen Wörterbuch als Wert hinzu. Lass uns ein komplexeres Beispiel erstellen - einen Schulverzeichnis:

school = {
"Klasse 9": {
"Alice": {
"age": 14,
"subjects": ["Mathematik", "Wissenschaft", "Englisch"]
},
"Bob": {
"age": 15,
"subjects": ["Geschichte", "Kunst", "Sport"]
}
},
"Klasse 10": {
"Charlie": {
"age": 16,
"subjects": ["Physik", "Chemie", "Biologie"]
}
}
}

Hier haben wir ein Hauptwörterbuch school, das Klassenstufen als Schlüssel enthält. Jede Klassenstufe ist ein weiteres Wörterbuch, das Schülername als Schlüssel enthält. Jeder Schüler hat dann sein eigenes Wörterbuch mit persönlichen Informationen.

Hinzufügen von Elementen zu einem Verschachtelten Wörterbuch in Python

Das Hinzufügen von Elementen zu einem verschachtelten Wörterbuch ist einfach. Du kannst entweder ein neues Schlüssel-Wert-Paar zu einem bestehenden verschachtelten Wörterbuch hinzufügen oder ein ganz neues verschachteltes Wörterbuch erstellen.

Lass uns eine neue Schülerin zur Klasse 10 hinzufügen:

school["Klasse 10"]["Diana"] = {
"age": 15,
"subjects": ["Mathematik", "Informatik", "Literatur"]
}

print(school["Klasse 10"])

Output:

{
'Charlie': {'age': 16, 'subjects': ['Physik', 'Chemie', 'Biologie']},
'Diana': {'age': 15, 'subjects': ['Mathematik', 'Informatik', 'Literatur']}
}

Wir können auch eine neue Klassenstufe hinzufügen:

school["Klasse 11"] = {
"Eve": {
"age": 17,
"subjects": ["Wirtschaft", "Psychologie", "Französisch"]
}
}

print(school.keys())

Output:

dict_keys(['Klasse 9', 'Klasse 10', 'Klasse 11'])

Zugriff auf Elemente eines Verschachtelten Wörterbuchs in Python

Um auf Elemente in einem verschachtelten Wörterbuch zuzugreifen, verwenden wir mehrere eckige Klammern, die jeder Ebene der Verschachtelung entsprechen. Lass uns einige Informationen aus unserem school-Wörterbuch abrufen:

# Abrufen von Alices Alter
alice_age = school["Klasse 9"]["Alice"]["age"]
print(f"Alices Alter: {alice_age}")

# Abrufen von Charlies Fächern
charlie_subjects = school["Klasse 10"]["Charlie"]["subjects"]
print(f"Charlies Fächer: {charlie_subjects}")

Output:

Alices Alter: 14
Charlies Fächer: ['Physik', 'Chemie', 'Biologie']

Denke daran, wenn du dir nicht sicher bist über die Struktur deines verschachtelten Wörterbuchs, kannst du immer die get()-Methode verwenden, um KeyErrorexceptionen zu vermeiden:

# Versuch, das Alter eines nicht-existenten Schülers abzurufen
frank_age = school.get("Klasse 9", {}).get("Frank", {}).get("age", "Nicht gefunden")
print(f"Franks Alter: {frank_age}")

Output:

Franks Alter: Nicht gefunden

Löschen eines Wörterbuchs aus einem Verschachtelten Wörterbuch

Um ein verschachteltes Wörterbuch zu entfernen, verwenden wir das del-Schlüsselwort. Lass uns Bob aus der Klasse 9 entfernen:

del school["Klasse 9"]["Bob"]
print(school["Klasse 9"])

Output:

{'Alice': {'age': 14, 'subjects': ['Mathematik', 'Wissenschaft', 'Englisch']}}

Sei vorsichtig beim Löschen von Elementen aus verschachtelten Wörterbüchern. Stelle immer sicher, dass die Schlüssel existieren, um KeyErrorexceptionen zu vermeiden.

Durchlaufen eines Verschachtelten Wörterbuchs in Python

Das Durchlaufen eines verschachtelten Wörterbuchs erfordert verschachtelte Schleifen. Lass uns alle Informationen in unserem school-Wörterbuch ausgeben:

for grade, students in school.items():
print(f"\n{grade}:")
for student, info in students.items():
print(f"  {student}:")
for key, value in info.items():
print(f"    {key}: {value}")

Output:

Klasse 9:
Alice:
age: 14
subjects: ['Mathematik', 'Wissenschaft', 'Englisch']

Klasse 10:
Charlie:
age: 16
subjects: ['Physik', 'Chemie', 'Biologie']
Diana:
age: 15
subjects: ['Mathematik', 'Informatik', 'Literatur']

Klasse 11:
Eve:
age: 17
subjects: ['Wirtschaft', 'Psychologie', 'Französisch']

Diese verschachtelte Schleifenstruktur ermöglicht es uns, auf alle Ebenen unseres verschachtelten Wörterbuchs zuzugreifen und auszugeben.

Methoden für die Arbeit mit Verschachtelten Wörterbüchern

Hier ist eine Tabelle mit nützlichen Methoden für die Arbeit mit verschachtelten Wörterbüchern:

Methode Beschreibung
dict.items() Liefert eine Sichtobjekt, das Schlüssel-Wert-Paare des Wörterbuchs enthält
dict.keys() Liefert eine Sichtobjekt, das Schlüssel des Wörterbuchs enthält
dict.values() Liefert eine Sichtobjekt, das Werte des Wörterbuchs enthält
dict.get(key, default) Liefert den Wert für den angegebenen Schlüssel, wenn er existiert, sonst den Standardwert
dict.update(other_dict) Aktualisiert das Wörterbuch mit Elementen aus einem anderen Wörterbuch oder einer iterierbaren Menge von Schlüssel-Wert-Paaren
dict.pop(key, default) Entfernt und liefert den Wert für den angegebenen Schlüssel. Wenn der Schlüssel nicht existiert, wird der Standardwert zurückgegeben

Denke daran, diese Methoden können auf jeder Ebene eines verschachtelten Wörterbuchs angewendet werden.

Und so, meine lieben Schüler! Wir haben die Einblicke in die verschachtelten Wörterbücher in Python erkundet. Von der Erstellung und dem Hinzufügen von Elementen bis hin zum Zugriff, Löschen und Durchlaufen dieser, hast du nun die Werkzeuge, um mit diesen komplexen Datenstrukturen zu arbeiten.

Wie bei jeder Programmierkonzepte ist Übung der Schlüssel. Versuche, deine eigenen verschachtelten Wörterbücher zu erstellen, vielleicht ein digitales Bibliotheksverzeichnis oder ein Rezeptbuch. Je mehr du mit diesen Strukturen spielst, desto komfortabler wirst du damit werden.

Denke daran, in der Welt der Programmierung sind Fehler nur Gelegenheiten, zu lernen. Also lass dich nicht von Experimenten und Fehlern abschrecken - so wachsen wir alle als Programmierer. Programmier weiter, lerne weiter und vor allem, hab Spaß mit Python!

Credits: Image by storyset