0%

Dictionaries und andere Sammlungen · Übung

Viele Datensätze in einer Liste speichern

Ein Dictionary bildet einen Datensatz ab:

book = {
    "title": "Kindred",
    "category": "novel",
    "year": 1979,
}

Eine Liste kann viele Datensätze in einer Reihenfolge enthalten:

catalog = [
    {
        "title": "Kindred",
        "category": "novel",
        "year": 1979,
    },
    {
        "title": "City map",
        "category": "reference",
        "year": 2026,
    },
]

Lies die Struktur von außen nach innen:

  1. catalog ist eine Liste.

  2. Jeder Listeneintrag ist ein Dictionary.

  3. Jedes Dictionary verwendet dieselben Schlüssel, um einen Eintrag zu beschreiben.

Eine einheitliche Struktur beibehalten

Eine Liste von Datensätzen lässt sich am leichtesten verwenden, wenn jeder Datensatz dieselben Pflichtschlüssel hat.

for item in catalog:
    print(f"{item['title']} ({item['year']})")

Die Schleife kann sich darauf verlassen, dass jedes item die Schlüssel "title" und "year" hat.

Wenn ein Datensatz "name" verwendet, während die anderen "title" verwenden, braucht das Programm Sonderfälle oder scheitert mit einem KeyError. Einheitliche Daten machen den Code einfacher.

Einen weiteren Datensatz hinzufügen

Verwende die Listenmethode, die du schon kennst:

catalog.append(
    {
        "title": "Trail guide",
        "category": "reference",
        "year": 2024,
    }
)

Die Liste wächst um einen Eintrag. Die bereits enthaltenen Dictionaries bleiben unverändert.

Auf ein Feld zugreifen

Du kannst einen Listenindex und einen Dictionary-Schlüssel kombinieren:

print(catalog[0]["title"])

Gehe von links nach rechts vor:

  1. catalog[0] gibt das erste Dictionary zurück.

  2. ["title"] gibt den Titelwert aus diesem Dictionary zurück.

Diese verkettete Form ist nützlich, wenn die Position bekannt ist. Eine Schleife ist besser, wenn du jeden Datensatz brauchst.

Untersuche jetzt die vollständige Struktur unten. Verfolge den Zugriff von der äußeren Liste über Index 0 und dann über den Schlüssel "title". Jede Beschriftung im Bild benennt jetzt einen Vorgang, den du kennengelernt hast.

Eine Liste namens catalog enthält zwei gleich aufgebaute Dictionaries. Index null von catalog wählt den ersten Datensatz aus, und title wählt dessen Wert Kindred aus.

Was gibt dieses Programm aus?

places = [
    {"name": "Kyoto", "country": "Japan"},
    {"name": "Lima", "country": "Peru"},
]

print(places[1]["country"])

Aufgabe

Füge der Liste catalog ein drittes Dictionary hinzu:

SchlüsselWert
"title""Dune"
"category""novel"
"year"1965

Durchlaufe dann jeden Datensatz und gib Folgendes aus:

Kindred (novel)
A Wizard of Earthsea (novel)
Dune (novel)
Records: 3

Verwende für jeden Datensatz dieselbe Struktur mit drei Schlüsseln.