Gevorderde Python-ontwikkelingscursus
Hoofdstuk
>
Niveau
Geavanceerde Lijsten
Verzamelingen sorteren
Doelstelling
Organiseer en kook een maaltijd door Sets te gebruiken om ingrediënten te sorteren en samen te stellen.
Het is een goed idee om wat eten te gaan klaarmaken, er liggen een paar ingrediënten in de koelkast, mooi ingepakt, evenals wat kruiden die je kunt gebruiken om het gerecht smaak te geven. Alle materialen zijn opgeslagen in lijsten, dus het is een goed idee om Sets te gebruiken om de items te consolideren en het meeste uit je kookkunsten te halen.
Er zijn drie (3) lijstconstanten, waarvan twee (2) vlees zijn, genaamd: pack1 en pack2, en één (1) is kookmaterialen, genaamd ingredients. Loop naar het donkere X-markering op het oranje tapijt en richt je op de koelkast, gebruik de collect() functie om pack1 en pack2 uit de koelkast te pakken, zoals dit: player.collect(pack1).
Zodra het vlees is verzameld, loop naar het lichte X-markering en richt je op het snijplank, hier zullen we de inhoud van de pakken verifiëren door de speak() functie te gebruiken met beide lijstconstanten die je verzameld hebt. Vanaf hier zullen we de items consolideren door, net als in het vorige level, Sets te gebruiken. Maak twee Sets genaamd set1 en set2, en ken met de set() functie pack1 en pack2 aan hen toe, bijvoorbeeld: set1 = set(pack1).
Zodra de lijsten zijn geconsolideerd in Sets, is het tijd om de items te sorteren en op te delen in kleinere Sets voor het gemak.
De eerste methode om dit te bereiken heet systemic_difference, hiermee kunnen we de items scheiden die niet gedeeld worden tussen de Sets. Maak een Set genaamd unique en gebruik de twee Sets om de unieke items te vergelijken en te identificeren met behulp van systemic_difference, zoals dit: unique = set1.symmetric_difference(set2). Gebruik de speak() methode met de aangemaakte Set om de inhoud van de set te bevestigen.
Ga verder met sorteren door een Set genaamd shared te maken en gebruik de intersection methode, die je in het vorige level geleerd hebt, om de items te identificeren die in beide Sets voorkomen. Gebruik de twee Sets om de items te vergelijken en te identificeren, zoals dit: shared = set1.intersection(set2). Gebruik de speak() methode met de aangemaakte Set om de inhoud van de set te bevestigen.
Gebruik tenslotte een methode genaamd difference, hiermee kunnen we de items scheiden die alleen in één Set voorkomen en niet in de andere. Maak twee (2) Sets genaamd meat1 en meat2, gebruik de twee originele Sets om de items te vergelijken en te identificeren met behulp van difference, zoals dit: meat1 = set1.difference(set2) en meat2 = set2.difference(set1). Gebruik de speak() methode met beide vlees Sets die je hebt aangemaakt om de inhoud van elke set te bevestigen.
Hiermee is het vlees gesorteerd. Loop naar de donkere X-markering boven het blauwe tapijt, richt je op de koelkast en gebruik de place() functie om de aangemaakte shared Set op te bergen, zoals dit: player.place(shared). Hiermee berg je de ingrediënten op die je niet gaat koken.
Loop naar de gouden X-markering, richt je op de kast en gebruik de collect() functie om de laatste lijstconstante genaamd ingredients te bemachtigen en gebruik de speak() functie om de inhoud te bevestigen. Breng de elementen van ingredients over naar een nieuwe Set genaamd set3.
Nu je alle ingrediënten hebt, maak je twee Sets, genaamd meal1 en meal2, door de union methode te gebruiken en alle elementen te combineren die nodig zijn om te koken.
Voor meal1, combineer set3 en meat1 als volgt: meal1 = set3.union(meat1). Loop naar de donkere X-markering op het paarse tapijt en gebruik met de meal1 Set de speak() functie om de inhoud te bevestigen en de place() functie om de maaltijd in de pan te koken.
Voor meal2 doe je hetzelfde, maar gebruik in plaats daarvan de union-methode met set3 en meat2. Loop naar de donkere X-markering op het gele tapijt, richt je op de pan, en gebruik de speak() en place() functies met meal2 om het level te voltooien.