Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:daten:processing:dictionaries [2026-04-23 05:30] – [Aufgabe 2: CSV in ein Dictionary einlesen] hof | gf_informatik:daten:processing:dictionaries [2026-04-27 06:02] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ## Dictionaries | ## Dictionaries | ||
| - | < | ||
| ### Problem | ### Problem | ||
| Zeile 12: | Zeile 11: | ||
| * $20$ Zugriffe für $1024\cdot1024 \approx 1Mio$, | * $20$ Zugriffe für $1024\cdot1024 \approx 1Mio$, | ||
| * $30$ Zugriffe für $1024\cdot1024\cdot1024 \approx 1Mia$ | * $30$ Zugriffe für $1024\cdot1024\cdot1024 \approx 1Mia$ | ||
| + | |||
| + | |||
| ### Syntax | ### Syntax | ||
| Zeile 25: | Zeile 26: | ||
| </ | </ | ||
| Alternativ können auch bereits Einträge von der Form `key : value` eingetragen werden: | Alternativ können auch bereits Einträge von der Form `key : value` eingetragen werden: | ||
| - | < | + | < |
| zip_codes = { ' | zip_codes = { ' | ||
| - | </ | + | </ |
| Auf ein bestimmtes Element kann über *eckige* Klammern und den Schlüssel (*key*) zugegriffen werden. Die Syntax ist die gleiche wie beim Listenzugriff, | Auf ein bestimmtes Element kann über *eckige* Klammern und den Schlüssel (*key*) zugegriffen werden. Die Syntax ist die gleiche wie beim Listenzugriff, | ||
| - | < | + | < |
| plz = zip_codes[' | plz = zip_codes[' | ||
| print(plz) | print(plz) | ||
| - | </ | + | </ |
| Ein neues Element kann mit derselben Syntax angelegt werden - ist der Schlüssel bereits vorhanden, wird der Wert überschrieben: | Ein neues Element kann mit derselben Syntax angelegt werden - ist der Schlüssel bereits vorhanden, wird der Wert überschrieben: | ||
| - | < | + | < |
| zip_codes[' | zip_codes[' | ||
| zip_codes[' | zip_codes[' | ||
| - | print(zip_codes)</ | + | print(zip_codes)</ |
| Mit dem `in` Schlüsselwort kann herausgefunden werden, ob ein Schlüssel im Dictionary vorhanden ist: | Mit dem `in` Schlüsselwort kann herausgefunden werden, ob ein Schlüssel im Dictionary vorhanden ist: | ||
| - | < | + | < |
| print(' | print(' | ||
| print(' | print(' | ||
| - | </ | + | </ |
| Wir können eine `for`-Schleife über die Keys in einem Dictionary schreiben: | Wir können eine `for`-Schleife über die Keys in einem Dictionary schreiben: | ||
| - | < | + | < |
| for town in zip_codes: | for town in zip_codes: | ||
| print(town) | print(town) | ||
| - | </ | + | </ |
| Möchten wir in der Schleife sowohl Key als auch Value haben, verwenden wir die `items()` Funktion. Jedes _item_ ist ein _Tuple_ mit zwei Werten, dem _key_ und dem _value_. | Möchten wir in der Schleife sowohl Key als auch Value haben, verwenden wir die `items()` Funktion. Jedes _item_ ist ein _Tuple_ mit zwei Werten, dem _key_ und dem _value_. | ||
| - | < | + | < |
| for town, plz in zip_codes.items(): | for town, plz in zip_codes.items(): | ||
| print(plz, town) | print(plz, town) | ||
| - | </ | + | </ |
| ### Aufgabe 1: Dictionary Syntax | ### Aufgabe 1: Dictionary Syntax | ||
| Zeile 88: | Zeile 89: | ||
| * Ein Ortsnamen kann mehrere Postleitzahlen haben - wir möchten immer die kleinste behalten (also `1000` für Lausanne, nicht `1005`). | * Ein Ortsnamen kann mehrere Postleitzahlen haben - wir möchten immer die kleinste behalten (also `1000` für Lausanne, nicht `1005`). | ||
| - | < | + | < |
| <script type=" | <script type=" | ||
| def load_zip_codes(): | def load_zip_codes(): | ||
| Zeile 116: | Zeile 117: | ||
| return zip_codes | return zip_codes | ||
| </ | </ | ||
| - | </ | + | </ |