Tuples und Dictionaries

Notizen

  • Dictionaries sind eine Verallgemeinerung von Listen, die key:value-Paare speichern. Der Zugriff auf die values erfolgt dann nicht über einen numerischen Index wie in Listen, sondern über den zugehörigen key. Als Key können alle nicht mutierbaren Datentypen dienen, also z.B. numerische Werte, Strings oder Tupel.

  • Tuples sind im wesentlichen eine nicht-mutierbare Variante von Listen. Die runden Klammern, die sie syntaktisch charakterisieren, können im allgemeinen weggelassen werden. Eine gute Beschreibung zur Verwendung von Tuples bei Funktionsaufrufen mit mehreren Parametern finden sie hier

  • Der jährlich stattfindende Advent of Code bietet eine Reihe von kniffligen kleinen Programmieraufgaben, die sich mit auch schon mit den bisherigen Grundlagen aus der Vorlesung lösen lassen.

Aufgaben bis zum nächsten Mal

  • Bonus: Lesen Sie im Skript das Kapitel 12 (Tuples)!

  • Bearbeiten Sie die folgende Aufgabe 07 und speichern Sie das Ergebnis in Ihrem pythonanywhere-Account! Sie können den nachfolgenden Text der Aufgabenstellung auch direkt in den Editor bei pythonanywhere kopieren. (Muster 07)

    aufgabe_07_anagramme.py
    # Anagramme
    #
    # Finde alle Anagramm-Familien in der Wortlistendatei `words.txt`. 
    # Anagramme sind Wörter, die sich aus denselben Buchstaben in anderer 
    # Reihenfolge ergeben. Eine Familie umfasst alle Wörter, die sich aus 
    # denselben Buchstaben bilden lassen.
    #
    # - Welche Anagramm-Familie enthält die meisten Wörter?
    #
    # - Welche Anagramm-Familie enthält die längsten Wörter?
    #
    # Hinweise
    # 
    # - Als Datenstruktur können Sie z.B. ein Dictionary mit der sortierten 
    # Buchstabenfolge als `key` und einer Liste der daraus erzeugbaren 
    # Wörter als `value` verwenden:
    #
    # ```
    # anagrams = { ... , 'adenrw':['wander','warden','warned'], 'egotyz':['zygote'], ...}
    # ```
    #
    # - Um eine Liste der Buchstaben in einem String `s` zu erhalten, 
    #   reicht `list(s)`.
    # 
    # - Um eine Liste von Buchstaben zu einem String zusammenzusetzen, 
    #   können Sie die `.join`-Methode verwenden:
    # 
    # 
    # word = 'cab'
    # l = list(word)
    # print(l) # ergibt ['c','a','b']
    # l.sort()
    # print(l) # ergibt ['a','b','c']
    # s = ''.join(l) # Lesen sie ggf. über die join-Methode für Strings nach!
    # print(s) # ergibt 'abc'
    # 
    
    anagrams = {'adenrw':['wander','warden','warned'], 'egotyz':['zygote']}