0%

Daten umformen und verbinden · Abschlussprojekt

Abschlussprojekt: Projekt: Versuche vereinheitlichen, ordnen und zusammenfassen

Dieses Kapitel hat mehrere Wege entwickelt, Sammlungen umzuformen und zusammenzufassen. Das Projekt verbindet sie jetzt, um Versuchsdaten zu verarbeiten, die als unbereinigte Strings ankommen.

Das Programm führt diese Daten durch drei Stufen:

  1. Vereinheitliche die Werte zu einem einheitlichen Aufbau.

  2. Ordne die Versuche nach Punktzahl und Bearbeitungszeit.

  3. Fasse die vereinheitlichte Sammlung zusammen.

Jede Stufe erhält das Ergebnis der vorigen Stufe und gibt einen neuen Wert zurück. Die ursprünglichen Rohdatensätze bleiben unverändert, sodass jeder Schritt getrennt verstanden und geprüft werden kann.

Vereinheitlichen

Rohdatensätze enthalten Strings:

{
    "learner": "  mina ",
    "score": "8",
    "total": "10",
    "seconds": "75",
}

Bereinige den Namen einer lernenden Person

Du weißt bereits, dass .strip() umgebende Leerraumzeichen entfernt:

Try it

Das gibt mina jansen aus. Der ursprüngliche String bleibt unverändert.

Vereinheitliche jeden Namen mit strip() und wandle numerische Felder mit int() um.

Ordnen

Verwende einen Tupelschlüssel:

(-attempt["score"], attempt["seconds"])

Höhere Punktzahlen kommen zuerst. Bei gleicher Punktzahl entscheidet die kürzere Bearbeitungszeit.

Zusammenfassen

Die Zusammenfassung meldet:

  • count: die Anzahl der Versuche;

  • points: die Summe der Punktzahlen;

  • lowest und highest;

  • has_perfect: ob irgendeine Punktzahl ihrer Gesamtzahl entspricht;

  • all_complete: ob jeder Datensatz eine nicht negative Bearbeitungszeit hat.

Bei einer leeren Liste sind die Punkte null, der niedrigste und höchste Wert sind None, und beide Bedingungsergebnisse sind False.

Bringe die Operationen in eine sichere Reihenfolge:

Ziehe die Optionen in die richtige Reihenfolge oder verwende die Pfeiltasten.

  • Wandle rohe Strings in vereinheitlichte Werte um.

  • Zeige die zurückgegebenen Ergebnisse an.

  • Lies Punktzahlen und boolesche Prüfungen aus.

  • Berechne die Zusammenfassung.

  • Ordne die vereinheitlichten Datensätze.

Halte die Stufen unabhängig

Verdeckte Prüfungen rufen jede Funktion mit unbekannten Daten auf. Fasse nicht die gesamte Arbeit im sichtbaren Beispiel auf oberster Ebene zusammen. Kleine öffentliche Funktionen lassen spätere Programme die Vereinheitlichung, Sortierung oder Zusammenfassung getrennt wiederverwenden.

Dies ist der letzte Verarbeitungsablauf mit Dictionarys, bevor Kapitel 4 Objekte einführt.

Aufgabe

Vervollständige die drei Projektfunktionen.

normalize_attempts:

  • Gib neue Dictionarys zurück, die umgebende Leerraumzeichen aus den Namen der Lernenden entfernen, ohne die Groß- und Kleinschreibung zu ändern, und numerische Felder in ganze Zahlen umwandeln.

  • Verändere die Roheingabe nicht.

rank_attempts:

  • Gib eine neue Liste zurück, sortiert nach absteigender Punktzahl und dann nach aufsteigenden Sekunden.

summarize_attempts:

  • Gib die sechs dokumentierten Felder zurück.

  • Verwende sum, min, max, any und all.

  • Erstelle die Sammlungen von Punktzahlen und booleschen Werten mit lesbaren Listen-Comprehensions.

  • Verwende die Wahrheitsprüfung der Liste, um eine leere Liste mit den dokumentierten Werten zu behandeln.

Das vorgegebene Programm vereinheitlicht zuerst und ordnet und fasst dann zusammen.