Fingerübungen 1: Listen#
einfache Listen#
Aufgabe: Index von Listen-Elementen#
Gegeben: Eine Liste Z
von Zahlen
Z = [1, 7, 3, -6, 7, 12 ]
Gesucht: Eine Liste der Zahlen in Z
, die durch 3 teilbar sind
Z_3 = None
... #
assert Z_3 == [ 3, -6, 12 ]
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[3], line 1
----> 1 assert Z_3 == [ 3, -6, 12 ]
AssertionError:
Gesucht: Eine Liste der Indizes der durch 3 teilbaren Zahlen in Z
Z_idx = None
... # list comprehension
assert Z_idx == [ 2, 3, 5 ]
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[5], line 1
----> 1 assert Z_idx == [ 2, 3, 5 ]
AssertionError:
Veränderung: Gegeben ist das Alphabet in klein- und Großbuchstaben: abc...xyzABC...XYZ"
. Gesucht:
Eine Liste der Indizes aller (auch großgeschriebenen) Vokale
abc = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
abc_idx = None
... #
Ellipsis
assert "".join([abc[i] for i in abc_idx ]) == 'aeiouAEIOU'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[7], line 1
----> 1 assert "".join([abc[i] for i in abc_idx ]) == 'aeiouAEIOU'
TypeError: 'NoneType' object is not iterable
Strings als Listen#
Aufgabe: Vokale entfernen#
Gegeben: ein String
S = "Hallo Welt!"
Gesucht: ein (i.A. kürzerer) String, bei dem alle Vokale entfernt sind
S_ohne_Vokale = None
S_ohne_Vokale = "".join([ c for c in S if c.lower() not in "aeiou" ])
assert S_ohne_Vokale == "Hll Wlt!"
Aufgabe: Wörter ohne Sonderzeichen#
Gegeben: Eine Liste von Strings, z.B.
L = [ "Grüß", "Gott", "in", "Bayern!" ]
Gesucht (1): Eine Liste, in der alle Wörter in Kleinbuchstaben verwandelt und alle Sonderzeichen entfernt sind. Verwenden Sie dazu die Funktion isalpha().
L_klein = []
for string in L:
... #
assert L_klein == [ "grüß", "gott", "in", "bayern" ]
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[13], line 1
----> 1 assert L_klein == [ "grüß", "gott", "in", "bayern" ]
AssertionError:
Aufgabe: Wörter ohne Sonderzeichen#
Eine Liste, in der alle Strings rückwärts gelesen sind
L_rueckwärts = ...
#assert L_rueckwärts == [ "ßürG", "ttoG", "ni", "!nreyaB" ]
Gesucht (3): Kombination von (1) und (2): Kleinbuchstaben, keine Sonderzeichen, rückwärts
L_klein_rueckwärts = ...
#assert L_klein_rueckwärts == [ "ßürg", "ttog", "ni", "nreyab" ]
Aufgabe: Drei-Tupel#
Gegeben
ein Text
text = "Hallo Welt!"
Gesucht:
eine Liste von Drei-Tupeln, d.h. von je 3 aufeinander folgenden Zeichen
L_3t_alle = ...
#assert L_3t_alle == [ "Hal", "all", "llo", "lo ", "o W", ... ]
Gesucht:
alle Drei-Tupel, die aber nicht über Leerzeichen hinweggehen
L_3t = ...
#assert L_3t == [ "Hal", "all", "llo", "Wel", "elt", "lt!" ]
Gesucht:
die vorangehende Lösung als Liste von Listen
L_3t_liste = ...
#assert L_3t_liste == [ [ "Hal", "all", "llo" ], [ "Wel", "elt", "lt!" ] ]
Aufgabe: Text to Dict#
Gegeben ist folgender Text:
Ubuntu_Versionen = """
4.10 Warty Warthog
5.04 Hoary Hedgehog
5.10 Breezy Badger
20.04 Focal Fossa
22.04 Jammy Jellyfish
22.10 Kinetic Kudu
23.04 Lunar Lobster
"""
Gesucht:
ein Dict
Ubuntu_Versionen_dict = ...
#assert Ubuntu_Versionen_dict == { '4.10': Warty Warthog, '5.04': 'Hoary Hedgehog', ... }
Aufgabe: String to Number#
Gegeben:
Eine Liste von Strings
Einkauf = [ "Anzahl:", "33", "Stück", "Preis:", "19.90", "Euro" ]
Gesucht:
Liste der darin enthaltenen Zahlen als
float
oder `int
Einkauf_Werte = ...
#assert Einkauf_Werte == [ 33, 19.90 ]
Aufgabe: Stabreime erkennen#
Ein Stabreim (https://de.wikipedia.org/wiki/Stabreim) ist vereinfacht ein Spruch oder ein Gedicht, bei dem sich viele Anfangs-Buchstaben von Wörtern reimen.
Gegeben: Eine Gedichtzeile
Wagner_Walkuere = "Wer so die Wehrlose weckt, dem ward, erwacht, sie zum Weib!"
Gesucht: Menge der Anfangsbuchstaben (Kleinbuchstaben)
WW_Anfangsbuchstaben = ...
#assert WW_Anfangsbuchstaben == { 'w', 's', 'd', ... }
Gesucht: dict von Listen von Wörtern, die den selben Anfangsbuchstaben haben
WW_w_woerter = ...
#assert WW_w_woerter == { 'w': [ 'Wer', 'Wehrlose', 'weckt, 'ward', 'Weib' ], 's': [ 'so', 'sie' ], ... }
Gesucht: dict, das zu jedem Anfangsbuchstaben die Anzahl liefert
WW_w_Anzahl = ...
#assert WW_w_Anzahl == { 'w': 5, 's': 2, ... }
Gesucht: der Anfangsbuchstabe, der am häufigsten vorkommt (und damit den eigentlichen Stabreim identifiziert):
z.B. hier das
w
Gesucht: Eine Funktion, die zu einer Gedichtzeile eine Liste der eigentlichen Stabreim-Wörter liefert.
Aufgabe: Zwillingsformeln#
Gegeben: eine Liste von Zwillings- (und anderen Vielfach-) Formeln
Zwillingsformeln = [ "Haus und Hof", "Leib und Leben", "Lebe lange und lustig", "schlank und rank", "Mord und Totschlag", "Wissen und Gewissen", "Wein und Bier", "frisch, fromm, fröhlich und frei" ]
Gesucht: Liste von Listen der Vielfachformel-Wörter, die zugleich Stabreime sind. (Groß/Kleinschreibung ist irrelevant))
Mehrlinge_Liste = ...
#assert Mehrlinge_Liste == [ ['Haus', 'Hof'], ['Leib', 'Leben'], ['Lebe', 'lange', 'lustig' ], ["frisch", "fromm", "fröhlich", "frei" ] ]