Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
gf_informatik:daten:processing:dictionaries_tutorial [2026-05-25 10:08] – [Hashing] hofgf_informatik:daten:processing:dictionaries_tutorial [2026-05-25 10:14] (aktuell) – [Aufgabe 3 - HashMap] hof
Zeile 176: Zeile 176:
  
 Um die Anzahl Kollisionen tief zu halten ist es wichtig, dass die Liste nie ganz gefüllt ist - die Tupel-Liste wird also bewusst grösser gewählt als nötig und bei Bedarf ein _rehash_ ausgeführt: alle Einträge werden in eine neue, grössere Liste umgefüllt, wobei die Indices dann neu berechnet werden müssen. Je nach gewähltem Faktor für die tolerierbare Kollisionszahl benötigt die Hashmap also mehr Speicher, um damit eine bessere Laufzeit zu erreichen. Um die Anzahl Kollisionen tief zu halten ist es wichtig, dass die Liste nie ganz gefüllt ist - die Tupel-Liste wird also bewusst grösser gewählt als nötig und bei Bedarf ein _rehash_ ausgeführt: alle Einträge werden in eine neue, grössere Liste umgefüllt, wobei die Indices dann neu berechnet werden müssen. Je nach gewähltem Faktor für die tolerierbare Kollisionszahl benötigt die Hashmap also mehr Speicher, um damit eine bessere Laufzeit zu erreichen.
- 
 #### Aufgabe 3 - HashMap #### Aufgabe 3 - HashMap
 Implementiere eine `class HashMap`. Implementiere eine `class HashMap`.
Zeile 305: Zeile 304:
  
     def __delitem__(self, key):     def __delitem__(self, key):
-        return self._finditem(key).__delitem__(key)+        item = self._finditem(key).__delitem__(key) 
 +        self._len -= 1 
 +        return item
  
     def __setitem__(self, key, value):     def __setitem__(self, key, value):
Zeile 327: Zeile 328:
                 if entry:                 if entry:
                     for key in entry:                     for key in entry:
-                        self._finditem(key, raise_on_notfound=False)[key] = entry[key]+                        self._finditem(key, False)[key] = entry[key]
 </code> </code>
 ++++ ++++
 </nodisp> </nodisp>
  • gf_informatik/daten/processing/dictionaries_tutorial.1779703729.txt.gz
  • Zuletzt geändert: 2026-05-25 10:08
  • von hof