Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe
Fortgeschrittene Listen
Erstellen einer verschachtelten Liste
Ziel
Lagere die Gewürze ordnungsgemäß im Gewürzregal, indem du verschachtelte Listen verwendest.
Eines der Gewürzregale ist leer und muss richtig wieder aufgefüllt werden. Es gibt Gewürze in der Lagerung, aber sie müssen passend sortiert, ordentlich organisiert und im Gewürzregal platziert werden.
Aufgrund der großen Anzahl an Gegenständen und der Tatsache, dass sie in verschiedenen Fächern eines Gewürzregals aufbewahrt werden, reichen einfache Listen und Dictionaries nicht aus. Für Situationen wie diese kannst du verschachtelte Listen verwenden, das sind Listen, die eine oder mehrere Listen in sich enthalten.
Um Gewürze zu verstauen, musst du zuerst Gläser holen, um die Gegenstände ordnungsgemäß zu lagern. Gehe zur goldenen X-Markierung, wende dich der Kiste zu und benutze die collect() Funktion, um ein "empty jar" zu sammeln, damit die Lagerung erleichtert wird.
Sobald die Gläser eingesammelt sind, gehe zu den hellen X-Markierungen vor den Holzkisten. In diesem Level gibt es vier (4) Listen-Konstanten, je eine für jede Kiste, diese sind: crate1, crate2, crate3 und crate4. Verwende die speak() Funktion mit diesen Listen-Konstanten, um den Inhalt jeder Kiste zu bestimmen. Die Konstanten entsprechen den Kisten von rechts nach links, zum Beispiel player.speak(crate1).
Sobald du den Inhalt der Kisten ermittelt hast, verwende List Comprehensions, um neue Listen ohne unnötige Elemente zu erstellen, die in den Listen-Konstanten vorhanden sind. Falls der Inhalt einer Kiste die Elemente "package", "string" oder "stuffing" enthält, benutze dieselbe Formel wie im vorherigen Kapitel, um die Listen zusammenzustellen, zum Beispiel:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Der obige Code erstellt eine neue Liste mit Elementen, die nicht das Wort "string" enthalten. Die Listen sollten folgendermaßen benannt werden: herbs, spices, salts und sugars. Du wirst wissen, welche Liste wie benannt werden soll, weil die Elemente in den Listen den Namen tragen.
Sobald alle vier Listen erstellt wurden, ist es Zeit, sie alle in einer verschachtelten Liste zusammenzuführen. Erstelle eine Liste namens seasonings und füge die erstellten Listen in die neue Liste ein, wie folgt:
seasonings = [ ] seasonings.append(herbs) .......
Sobald alle Elemente in der verschachtelten Liste zusammengefügt wurden, gehe zur dunklen X-Markierung auf dem grünen Teppich und wende dich dem Regal zu. Verwende die speak() Funktion in Verbindung mit der verschachtelten Liste seasonings, um die Gegenstände in jedem Regal anzuzeigen. Anschließend benutze die place() Funktion mit der Liste, um das Level abzuschließen, wie folgt: player.speak(seasonings).