Python TagebuchPython lernen – mein persönliches Tagebuch

Tagebuch-Eintrag #31
Nochmal zwei Schritte zurück

Um vorwärts zu kommen, muss man manchmal auch ein paar Schritte zurück gehen. Zwei Wochen nicht aktiv gelernt und schon einiges vergessen.
Werbung/Anzeige

Ich hatte mir vorgenommen, dass ich seit meinem letzten Zwischenstand wieder mehr Zeit in Python lernen investieren möchte.

Doch leider hat mich letztes Wochenende eine kleine Grippe ausgeknockt und hatte die ganze Woche nicht die benötigte Konzentration, um weiter Python zu lernen. Aber keine Angst, es ist nicht der Corona-Virus.

Heute, Samstag, geht es wieder ganz gut und ich wollte wieder da einsteigen, wo ich zu letzt vor gut zwei Wochen aufgehört hatte. Konkret war ich beim Udemy-Kurs Python Bootcamp: Vom Anfänger zum Profi, inkl. Data Science bei der Aufgabe Dictionaries und Schleifen stehen und hängen geblieben.

Aber ich habe bemerkt, dass ich in den zwei Wochen einige vergessen hatte und die Gedanken um Python neu sortieren musste.

Das heißt, ich musste zwei Schritte zurück gehen und das zuletzt erlernte Wissen nochmal auffrischen. Ich spreche nicht davon, wie der print-Befehl funktioniert oder was Listen, Tupel oder Dictionaries sind.

Wissen auffrischen und behalten 😉

Ich bin heute der Aufgabe also erneut durchgegangen und konnte keinen richtigen Faden finden, wie ich die Aufgabe lösen sollte. Die Aufgabe war, den meist vergebenen Vornamen in den USA zu finden. Mein Problem war, dass ich nicht wusste, wie ich abfragen sollte, ob es den Namen schon gab, wenn ja, wie oft und wie kann es zum bereits vorhandene und aktuellen Anzahl hinzugefügt wird, so dass die Anzahl pro Name immer aktualisiert wird.

Zum ersten mal musste ich mich der Musterlösung annehmen und sehen, wie diese Aufgabe gelöst werden konnte.

Und herausgekommen ist dieser Code von mir

# leeres Dictionary mit den Namen erstellen
names = {}
# Datei mit den Namen öffnen
with open("data\\names.csv", "r") as file:
    for line in file:
        # Einträge werden in einer Liste umgewandelt
        line_list = line.strip().split(",")
        # Die erste Zeile der CSV mit den Spaltenüberschriften wird übersprungen
        if line_list[0] == "Id":
            continue
        # Name und Anzahl wird aus der Liste extrahiert.
        forname = line_list[1]
        count = int(line_list[-1])
        # Wenn Name im Dictionary names vorhandenen ist
        if forname in names:
            # Wird der Name zum Anzahl hinzuaddiert
            names[forname] = names[forname] + count
        # Wenn Name im Dictionary names nicht vorhanden ist
        else:
            # Wird der Name zum Anzahl
            names[forname] = count
    # Basiswert 0
    max_count = 0
    # Leere Variable, welches später den am meisten vergebenen Namen ausgeben wird.
    name_max_count = ""
    # For-Schleife, welches den names-Dictionary durchsucht.
    for single_name, name_count in names.items():
        # Wenn maximale Anzahl kleiner ist als der gefundene Wert (also Anzahl)
        if max_count < name_count:
            # Dann ist der neue Wert von max_count, die der Anzahl
            max_count = name_count
            # Und Name ist gleich der Name mit den meisten vergebenen Vornamen
            name_max_count = single_name
# den am meisten vergebenen Vornamen wird ausgegeben
print(name_max_count)

Ich habe den Code für mich selbst Zeile für Zeile kommentiert, damit ich besser verstehen und nachvollziehen kann, was genau in jeder Zeile passiert.

Fremden Code – in meinem Fall die Musterlösung – zur Hilfe zu nehmen und mehr oder weniger abzutippen ist das eine. Das wichtige für mich ist, dass ich verstehen muss, was der (fremde) Code genau mit dem Programm macht. Nur so kann ich lernen und merken. Und die Kommentare helfen mir dabei.

Üben üben und noch mehr üben

Das heißt für mich, dass ich die Aufgabe noch ein paar mal wiederholen werde und dabei immer seltener oder dann gar nicht mehr in der Musterlösung nachschauen muss.

Interessant ist noch, welcher Name in der CSV-Datei am seltensten vorkommt. Einfach den Operator < in der Zeile 29 umdrehen geht nicht. Das wäre zu einfach 😉

Ich muss es verinnerlichen, so dass ich schon Nachts davon träume 😉

In diesem Sinne, noch ein schönes Wochenende.

# # ## ENDE Tagebuch-Eintrag #31 | Nochmal zwei Schritte zurück
Werbung/Anzeige
Schlagwörter im Tagebuch-Eintrag:

Kommentar schreiben




Werbung/Anzeige