LU07.A09 - Datenstruktur begründet auswählen

Lösen Sie dieselbe Aufgabe mit drei Datenstrukturen, messen Sie alle drei und sprechen Sie eine begründete Empfehlung aus - inklusive der Fälle, in denen Ihre Empfehlung falsch wäre.

Die Aufgabe

Eine Bibliothek führt eine Sperrliste. Zu jeder Ausleihe muss geprüft werden, ob das Konto gesperrt ist; bei gesperrten Konten wird zusätzlich der Sperrgrund angezeigt.

import random
random.seed(7)
 
gesperrte_konten = [(f"konto{i}", "Mahnung offen" if i % 2 else "Ausweis abgelaufen")
                    for i in range(20000)]
ausleihen = [f"konto{random.randrange(40000)}" for _ in range(5000)]

Detaillierte Aufgabenstellung

  1. Implementieren Sie pruefen(ausleihen, gesperrte) dreimal, mit gesperrte als:
    • Liste von Tupeln (wie oben)
    • Set der gesperrten Kontonummern, Grund über eine zweite Struktur
    • Dict {konto: grund}
  2. Alle drei Fassungen liefern dieselbe Liste von (konto, grund)-Paaren, in derselben Reihenfolge. Belegen Sie das mit assert.
  3. Messen Sie alle drei mit timeit. Messen Sie den Aufbau der Datenstruktur separat von der Abfrage.
  4. Erstellen Sie eine Empfehlungstabelle.

Zu beantwortende Fragen

Diese Aufgabe deckt das Portfolio-Artefakt D1A ab: Messung vorher/nachher plus Begründung der gewählten Datenstruktur. Übertragen Sie das Vorgehen auf eine echte Stelle in Ihrem Flask-Projekt.


© Kevin Maurizi