Übungsaufgaben 04
Listen und Iteration
Übungsaufgabe 04.01: Nichtdestruktive Listenoperationen
Was geben die folgenden Ausdrücke zurück? Schreiben Sie es auf, nach Möglichkeit, ohne es auszuprobieren.
[2, 3] in [2, 3, [5], 7]5 in [2, 3, [5], 7]7 not in [2, 3, [5], 7][2, 3] + [5] + [7][2, 3] + [[5]] + [7][2, 3, [5], 7][2][2, 3, [5], 7][:2][2, 3, [5], 7][1:3]len([2, 3, 5, 7])len([2, [3, 5], 7])[2, [2, 2], 2].count(2)[2, [2, 2], 2].index(2)sorted([[3, 2], [2, 3], [3, 3]])
Übungsaufgabe 04.02: Destruktive Listenoperationen
Was ist der Inhalt der Liste l nach jeder Anweisung? Schreiben Sie es auf, nach Möglichkeit, ohne es auszuprobieren.
>>> l = [2, 3, 5, 7, 11]
>>> l[1] = l[1] * 2
>>> l[1:2] = [3, 4]
>>> del l[2]
>>> del l[5:]
>>> l.append(17)
>>> l.insert(5, 13)
>>> l.extend([19, 21, 22, 23])
>>> l.pop(-2)
22
>>> l.remove(21)
>>> l.reverse()
>>> l.sort()
>>> l.clear()
Übungsaufgabe 04.03: Wörter extrahieren und sortieren
Schreiben Sie ein Programm tokens.py, das einen Text (z.B. Pride and Prejudice
oder Moby Dick) vom Input liest, alle Wortvorkommen extrahiert und sortiert
ausgibt, eins pro Zeile. Zum Beispiel:
$ cat moby-dick.txt | python3 tokens.py | tail -n 20
zeal
zeal
zephyr
zigzag
zip
zodiac
zodiac
zodiac
zone
zone
zone
zone
zone
zoned
zones
zones
zones
zoology
~
~5%
Tipps:
- Legen Sie eine zunächst leere Liste an, um die Wortvorkommnisse zu sammeln.
- Iterieren Sie über die Zeilen im Input. Zerlegen Sie jede Zeile in eine Liste von Wörtern, anhand von Whitespace.
- Iterieren Sie über die Wörter und behandeln Sie jedes Wort wie folgt: Eventuelle Satzzeichen entfernen (z.B.
mit Hilfe der
replace-Methode oder derstrip-Methode), dann zu der Liste mit den Wortvorkommnissen hinzufügen. - Am Ende: Sortieren Sie die Liste und iterieren Sie über sie, um jedes Element auszugeben.
Bewahren Sie Ihre Lösung auch nach dem Vorzeigen auf! Wir werden dieses Programm nächste Woche erweitern.