Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:daten:processing:dictionaries [2026-04-22 13:17] hofgf_informatik:daten:processing:dictionaries [2026-04-27 06:02] (aktuell) hof
Zeile 1: Zeile 1:
 ## Dictionaries ## Dictionaries
-<html><script type="module" src="https://bottom.ch/editor/stable/bottom-exercise.js"></script></html> 
  
 ### Problem ### Problem
Zeile 27: Zeile 26:
 </code> </code>
 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:
-<html><bottom-editor autorun id="dict1">+<bottom-editor autorun id="dict1">
 zip_codes = { 'Romanshorn' : 8590, 'Egnach' : 9322 } zip_codes = { 'Romanshorn' : 8590, 'Egnach' : 9322 }
-</bottom-editor></html>+</bottom-editor>
  
 Auf ein bestimmtes Element kann über *eckige* Klammern und den Schlüssel (*key*) zugegriffen werden. Die Syntax ist die gleiche wie beim Listenzugriff, nur verwenden wir statt dem *Index* den *Schlüssel*. Auf ein bestimmtes Element kann über *eckige* Klammern und den Schlüssel (*key*) zugegriffen werden. Die Syntax ist die gleiche wie beim Listenzugriff, nur verwenden wir statt dem *Index* den *Schlüssel*.
-<html><bottom-editor autorun id="dict2">+<bottom-editor autorun id="dict2">
 plz = zip_codes['Romanshorn'] plz = zip_codes['Romanshorn']
 print(plz) print(plz)
-</bottom-editor></html>+</bottom-editor>
  
 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:
-<html><bottom-editor autorun id="dict3">+<bottom-editor autorun id="dict3">
 zip_codes['Amriswil'] = 8580    # Legt ein neues Key-Value-Pair an. zip_codes['Amriswil'] = 8580    # Legt ein neues Key-Value-Pair an.
 zip_codes['Romanshorn'] = 8591  # Überschreibt den bestehenden Eintrag für Romanshorn zip_codes['Romanshorn'] = 8591  # Überschreibt den bestehenden Eintrag für Romanshorn
-print(zip_codes) +print(zip_codes)</bottom-editor>
-</bottom-editor></html>+
  
 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:
-<html><bottom-editor autorun id="dict4">+<bottom-editor autorun id="dict4">
 print('Romanshorn' in zip_codes) print('Romanshorn' in zip_codes)
 print('St. Gallen' in zip_codes) print('St. Gallen' in zip_codes)
-</bottom-editor></html>+</bottom-editor>
  
 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:
-<html><bottom-editor autorun id="dict5">+<bottom-editor autorun id="dict5">
 for town in zip_codes: for town in zip_codes:
     print(town)     print(town)
-</bottom-editor></html>+</bottom-editor>
  
-Möchten wir in der Schleife sowohl Key als auch Value haben, verwenden wir die `items()` Funktion: +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_. 
-<html><bottom-editor autorun id="dict6">+<bottom-editor autorun id="dict6">
 for town, plz in zip_codes.items(): for town, plz in zip_codes.items():
     print(plz, town)     print(plz, town)
-</bottom-editor></html>+</bottom-editor>
  
 ### Aufgabe 1: Dictionary Syntax ### Aufgabe 1: Dictionary Syntax
Zeile 71: Zeile 69:
 Wir benötigen dafür zwei separate Dictionaries. Wir benötigen dafür zwei separate Dictionaries.
 ++++ ++++
- 
 ### Aufgabe 2: CSV in ein Dictionary einlesen ### Aufgabe 2: CSV in ein Dictionary einlesen
  
Zeile 92: 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`).
  
-<nodisp 1+<bottom-exercise hidesolution id="load-plz" zip="https://bottom.ch/ksr/2m/data/2m.zip"
-++++Code| +<script type="text/x-starter"> 
-<code python>+def load_zip_codes(): 
 +    """Liest plz.csv und erstellt ein Dictionary 
 +       mit key Gemeindename und value Postleitzahl.""" 
 +        
 +        
 +</script> 
 +<script type="text/x-test"> 
 +assert str(load_zip_codes()['Romanshorn']) == '8590' 
 +assert str(load_zip_codes()['Pollegio']) == '6742' 
 +assert str(load_zip_codes()['Lausanne']) == '1000' 
 +</script> 
 +<script type="text/x-solution">
 def load_zip_codes(): def load_zip_codes():
     zip_codes = {}     zip_codes = {}
Zeile 108: Zeile 116:
                 pass                 pass
     return zip_codes     return zip_codes
-</code> +</script
-++++ +</bottom-exercise> 
-</nodisp>+
  
  
  • gf_informatik/daten/processing/dictionaries.1776863823.txt.gz
  • Zuletzt geändert: 2026-04-22 13:17
  • von hof