Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe
Fortgeschrittene Listen
Sortieren von Mengen
Ziel
Organisiere und koche eine Mahlzeit, indem du Sets zur Sortierung und Zusammenstellung von Zutaten verwendest.
Es wäre eine gute Idee, schon mal mit dem Zubereiten des Essens zu beginnen. Im Kühlschrank befinden sich einige verpackte Zutaten sowie ein paar Kräuter, die du zur Geschmacksgebung verwenden kannst. Alle Materialien sind in Listen gespeichert, daher ist es sinnvoll, Sets zu verwenden, um die Elemente zu konsolidieren und das Beste aus deinem Kocherlebnis herauszuholen.
Es gibt drei (3) Listenkonstanten, zwei (2) sind Fleisch, benannt: pack1 und pack2, und eine (1) ist Kochmaterial, benannt ingredients. Gehe zu dem dunklen X-Mark auf dem orangefarbenen Teppich und wende dich dem Kühlschrank zu. Benutze die Funktion collect(), um pack1 und pack2 aus dem Kühlschrank zu holen, so: player.collect(pack1).
Sobald das Fleisch eingesammelt wurde, gehe zum hellen X-Mark und wende dich dem Schneidebrett zu. Hier werden wir den Inhalt der Pakete überprüfen, indem wir die Funktion speak() mit beiden von dir gesammelten Listenkonstanten verwenden. Von hier aus werden wir die Elemente mithilfe von Sets konsolidieren, wie im vorherigen Level. Erstelle zwei Sets namens set1 und set2 und weise ihnen mit der Funktion set() pack1 bzw. pack2 zu, zum Beispiel: set1 = set(pack1).
Sobald die Listen in Sets konsolidiert wurden, ist es an der Zeit, die Elemente zu sortieren und in kleinere Sets zur besseren Übersicht zu unterteilen.
Die erste Methode, dies zu erreichen, heißt systemic_difference. Damit können wir die Elemente trennen, die in den einzelnen Sets nicht gemeinsam vorkommen. Erstelle ein Set namens unique und vergleiche die beiden Sets, um die einzigartigen Elemente mit systemic_difference zu identifizieren, so: unique = set1.symmetric_difference(set2). Benutze die Funktion speak() mit dem erstellten Set, um den Inhalt zu bestätigen.
Fahre mit der Sortierung fort, indem du ein Set namens shared erstellst und die in der vorherigen Stufe erlernte Methode intersection verwendest, um die Elemente zu identifizieren, die in beiden Sets vorkommen. Vergleiche die beiden Sets, so: shared = set1.intersection(set2). Benutze die Funktion speak() mit dem erstellten Set, um den Inhalt zu bestätigen.
Verwende abschließend eine Methode namens difference, mit der du die Elemente trennen kannst, die nur in einem der beiden Sets vorkommen. Erstelle zwei (2) Sets namens meat1 und meat2. Vergleiche die beiden ursprünglichen Sets und identifiziere die jeweiligen Elemente mit difference, so: meat1 = set1.difference(set2) und meat2 = set2.difference(set1). Benutze die Funktion speak() mit beiden erstellten Fleisch-Sets, um deren Inhalte zu bestätigen.
Nachdem das Fleisch sortiert wurde, gehe zum dunklen X-Mark oberhalb des blauen Teppichs, wende dich dem Kühlschrank zu und benutze die Funktion place(), um das erstellte Set shared zu verstauen, so: player.place(shared). Damit räumst du die Zutaten weg, die du nicht kochst.
Gehe zum goldenen X-Mark, wende dich dem Schrank zu und benutze die Funktion collect(), um die letzte Listenkonstante namens ingredients zu erlangen, und verwende die Funktion speak(), um deren Inhalt zu bestätigen. Übertrage die Elemente von ingredients in ein neues Set namens set3. Da du jetzt alle Zutaten hast, erstelle zwei Sets, namens meal1 und meal2, und kombiniere mit der Methode union alle für das Kochen benötigten Elemente.
Für meal1 kombiniere set3 und meat1 wie folgt: meal1 = set3.union(meat1). Gehe zum dunklen X-Mark über dem lila Teppich und benutze mit dem Set meal1 die Funktion speak(), um den Inhalt zu bestätigen, sowie die Funktion place(), um die Mahlzeit im Topf zu kochen.
Für meal2 verfahren wir analog, jedoch mit der Methode union unter Verwendung von set3 und meat2. Gehe zum dunklen X-Mark über dem gelben Teppich und wende dich dem Topf zu. Benutze die Funktionen speak() und place() mit meal2, um das Level abzuschließen.