Fingerübungen 2: Dicts#
Sei gegeben:
shopping_dict = {"apple": 5, "banana": 4, "milk": 2}
shopping_dict_len = len(shopping_dict)
print(shopping_dict)
{'apple': 5, 'banana': 4, 'milk': 2}
Anzahl der Keys
... #
assert Anzahl_der_Keys == shopping_dict_len
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[2], line 2
1 ... #
----> 2 assert Anzahl_der_Keys == shopping_dict_len
NameError: name 'Anzahl_der_Keys' is not defined
Ist der key “ham” enthalten? Verschiedene Lösungen, incl. get()
... #
... #
assert ham_in_shopping_dict == False
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[4], line 1
----> 1 assert ham_in_shopping_dict == False
NameError: name 'ham_in_shopping_dict' is not defined
Liste aller keys; Liste aller values
... #
... #
assert set(shopping_dict_keys) == { 'apple', 'banana', 'milk' }
assert set(shopping_dict_values) == { 2, 4, 5 }
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 1
----> 1 assert set(shopping_dict_keys) == { 'apple', 'banana', 'milk' }
2 assert set(shopping_dict_values) == { 2, 4, 5 }
NameError: name 'shopping_dict_keys' is not defined
Erhöhe die Anzahl der “apple” um 2
... #
Ellipsis
assert shopping_dict["apple"] == 7
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[8], line 1
----> 1 assert shopping_dict["apple"] == 7
AssertionError:
Füge hinzu:
“ham”: 1
“apple”: 999 (“apple” gibt es schon: Aussagekräftige Warnung ausgeben!)
# ham: 1
... #
# apple: 999
key = "apple"
... #
... #
shopping_dict
{'apple': 5, 'banana': 4, 'milk': 2}
Lösche aus dem dict:
“milk”
“steak”
Gib als Ergebnis der Löschoperation den Wert des gelöschten Elementes zurück. Falls es das Element nicht gibt, gib ersatzweise None
zurück.
key = "milk"
... #
key = "steak"
... #
Aufgabe: Wortlänge#
wort_laenge = { "hallo": 5, "Welt": 4, "Grüß": 4, "Gott": 4, "Tschau": 5}
Erzeuge ein “umgedrehtes” Dictionary, bei dem man für jede Wortlänge die entsprechenden Wörter nachschlagen kann!
laenge_wort = {}
...t
Cell In[12], line 2
...t
^
SyntaxError: invalid syntax
# assert laenge_wort == {5: {'Tschau', 'hallo'}, 4: {'Gott', 'Grüß', 'Welt'}}
Geburtstage in jedem Monat#
Gegeben: ein dict, das für jede Person den Geburtstag angibt
z.B.
Geburtstage_nach_Name = { "Peter": "1988-01-08", "Jenny": "2004-01-17", "Ali": "2003-02-12", ... }
Gesucht: ein dict, das für jeden Monat in einer Liste angibt, wer in diesem Monat Geburtstag hat
z.B.
Geburtstage_nach_Monat = { "01" : [ "Peter", "Jenny" ], "02" : [ "Ali" ] }
Vorgehen z.B. so:
Ergebnis-Dict
Geburtstage_nach_Monat
anlegen: für jeden Monat eine leere Listez.B.
Monatskinder = { "01": [], "02": [], ...}
durch
Geburtstage_nach_Name
durchgehen undName
undDatum
identifizierenaus
Datum
(z.B. mit slicing) den Monat extrahierenden Namen in die Liste des jeweiligen Monats in
Geburtstage_nach_Monat
hinzufügen