Ü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.