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 [2023-05-29 15:54] – [Aufgabe 2: CSV in ein Dictionary einlesen] hofgf_informatik:daten:processing:dictionaries [2025-06-16 08:57] (aktuell) hof
Zeile 6: Zeile 6:
  
 Wie wir wissen, können wir in einem (sortierten) Wörterbuch (Diktionär) effizient suchen: Wie wir wissen, können wir in einem (sortierten) Wörterbuch (Diktionär) effizient suchen:
-  * Der Suchbereich wird fortlaufend halbiert (s.a. Binäre Suche in [[gf_informatik:suchen_und_sortieren]])+  * Der Suchbereich wird fortlaufend halbiert (s.a. Binäre Suche in [[gf_informatik:suchen_und_sortieren_2023]])
   * Bei $n$ Einträgen benötigt die Suche nach einem Element nur $log_2(n)$ Zugriffe, also   * Bei $n$ Einträgen benötigt die Suche nach einem Element nur $log_2(n)$ Zugriffe, also
     * $10$ Zugriffe für $1024$ Elemente,     * $10$ Zugriffe für $1024$ Elemente,
Zeile 18: Zeile 18:
     * Ein Dictionary stellt eine Sammlung von `Schlüssel : Wert` Paaren dar (oder `key : value`).     * Ein Dictionary stellt eine Sammlung von `Schlüssel : Wert` Paaren dar (oder `key : value`).
     * Erlaubt direkten Zugriff auf jedes Element mit dem gewünschten *Schlüssel*.     * Erlaubt direkten Zugriff auf jedes Element mit dem gewünschten *Schlüssel*.
-    * In Wahrheit benützt sie nicht binäre Suche, sondern eine noch schnellere Zugriffsart: [[wpde>Hashtabelle]].+    * Jeder Schlüssel kann nur einmal vorkommen, Werte hingegen können mehrfach enthalten sein. 
 +    * In Wirklichkeit benützen Dictionaries nicht binäre Suche, sondern eine noch schnellere Zugriffsart: [[wpde>Hashtabelle]].
  
 Ein leeres Dictionary wird mit geschweiften Klammern erzeugt: Ein leeres Dictionary wird mit geschweiften Klammern erzeugt:
Zeile 83: Zeile 84:
 Schreibe Code wie die obigen Beispiele, um eine Sammlung von Postleitzahlen anzulegen. Schreibe Code wie die obigen Beispiele, um eine Sammlung von Postleitzahlen anzulegen.
  
-Wie müsste man vorgehen, wenn wir sowohl ein Mapping von Ortsnamen zu Postleitzahlen als auch umgekehrt von Postleitzahlen zu Ortsnamen haben möchten?+Wie müsste man vorgehen, wenn wir sowohl ein Dictionary von Ortsnamen zu Postleitzahlen als auch umgekehrt von Postleitzahlen zu Ortsnamen haben möchten?
  
 ++++Antwort:| ++++Antwort:|
 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
  
-Lies die Datei [[https://kantonsschuleromanshorn.sharepoint.com/sites/FSInformatik/Freigegebene%20Dokumente/2M/Daten/Processing/Beispieldaten/plz.csv?download=1|plz.csv]] ein und erstelle daraus ein Dictionary von Ortsnamen zu Postleitzahl.+Lies die Datei [[https://kantonsschuleromanshorn.sharepoint.com/:f:/s/FSInformatik/Ek-Hi_stH2RMjDa-wQN9jekBMeF_YD6rvhmibDlNglGWxw?e=Y3AX65|plz.csv]] ein und erstelle daraus ein Dictionary von Ortsnamen zu Postleitzahl.
  
 Die Daten sehen so aus: Die Daten sehen so aus:
Zeile 108: Zeile 110:
   * 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 2>+<nodisp 1>
 ++++Code| ++++Code|
 <code python> <code python>
Zeile 138: Zeile 140:
 ++++ ++++
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
  • gf_informatik/daten/processing/dictionaries.1685375680.txt.gz
  • Zuletzt geändert: 2023-05-29 15:54
  • von hof