Grundidee von Dictionaries
Eine der Hauptanwendungen in der Informatik ist das Suchen von Einträgen in einer Datenmenge. Typischerweise haben wir dafür einen Begriff oder eine Nummer, über die wir die Einträge suchen. Als Antwort erwarten wir die dazugehörigen Werte zu bekommen. Ein einfaches Beispiel ist ein Wörterbuch: Wir kennen den Begriff in einer Sprache, wollen diesen aber in einer Zielsprache kennen.
In Python wird dieses Konzept abstrahiert, um es allgemeiner zu halten. Das Objekt, welches wir zur Suche verwenden, (also in unserem Beispiel den Begriff, den wir kennen) wird als Schlüssel bezeichnet. Die dazugehörige Information (der Begriff in der Zielsprache) wird als Wert bezeichnet. Eine Datenstruktur, die das Suchen unterstützt, verwaltet eine Menge von solchen Schlüssel/Werte-Paaren.
Wir könnten dieses Konzept mittels Tupeln und Listen einfach selbst umsetzten. Die entsprechende Datenstruktur, sowie eine dazugehörige Suchfunktion, ist in folgendem Code umgesetzt.
Im Prinzip haben wir damit das Problem gelöst. Wir können nun Dinge speichern und suchen. Das Problem ist nur, dass diese Methode ineffizient ist. Falls der Schlüssel, nachdem wir suchen, gerade das letzte Element in der Liste ist, oder sogar gar nicht in der Liste vorhanden ist, muss die ganze Liste durchsucht werden. Bei grösseren Datenmengen ist dies sehr ineffizient. Ein weiteres Problem ist, dass sich unser selbst geschriebenen Code schwer lesen lässt.
Python gibt uns daher bereits eine fertige Lösung, um mit Schlüssel/Werte Paaren umzugehen. Diese, sogenannten Dictionaries, unterstützen eine spezielle Syntax um den Code leserlich zu machen. Zudem macht die Implementation Gebrauch von sehr effizienten Datenstrukturen, die garantieren, dass auch in grossen Datenmengen jedes Element schnell gefunden wird.
Fragen und Kommentare
Haben Sie Fragen oder Kommentare zu diesem Artikel? Nutzen Sie das Forum und helfen Sie sich und Ihren Mitstudierenden dieses Thema besser zu verstehen.