Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå
Avancerade listor
Sortera mängder
Mål
Organisera och laga en måltid genom att använda Sets för att sortera och komponera ingredienser.
Det vore en bra idé att börja förbereda lite mat, det finns några ingredienser i kylskåpet som är inhuggna samt några örter du kan använda för att ge rätten smak. Alla material är lagrade i listor så det vore en bra idé att använda Sets för att konsolidera objekten och få ut så mycket som möjligt av din matlagning.
Det finns tre (3) listkonstanter, två (2) av dem är kött, benämnda: pack1 och pack2, och en (1) är matlagningsmaterial, benämnd ingredients. Gå till det mörka X-märket på den orange mattan och vänd dig mot kylskåpet, använd funktionen collect() för att hämta pack1 och pack2 från kylskåpet, på det här sättet: player.collect(pack1).
När köttet har hämtats, gå till det ljusa X-märket och vänd dig mot skärbrädan, här ska vi verifiera innehållet i paketen genom att använda funktionen speak() med båda listkonstanterna du hämtade. Därifrån kommer vi att konsolidera objekten genom att använda Sets precis som i föregående nivå. Skapa två Sets med namnen set1 och set2, och använd funktionen set() för att tilldela pack1 och pack2 till dem, exempelvis: set1 = set(pack1).
När listorna har konsoliderats till Sets, är det dags att sortera och dela upp objekten i mindre Sets för bekvämlighet.
Den första metoden för att uppnå detta kallas systemic_difference, denna låter oss separera objekten som inte delas mellan varje Set. Skapa ett Set kallat unique och använd de två Sets för att jämföra och identifiera de unika objekten med systemic_difference, på det här sättet: unique = set1.symmetric_difference(set2). Använd metoden speak() med det Set du skapade för att bekräfta setets innehåll.
Fortsätt med sorteringen genom att skapa ett Set kallat shared och använd metoden intersection som lärdes ut på föregående nivå för att identifiera objekt som finns i båda Sets. Använd de två Sets för att jämföra och identifiera objekten, på det här sättet: shared = set1.intersection(set2). Använd metoden speak() med det Set du skapade för att bekräfta setets innehåll.
Avslutningsvis, använd en metod kallad difference, denna låter oss separera objekten som endast finns i ett Set och inte i det andra. Skapa två (2) Sets kallade meat1 och meat2, använd de två ursprungliga Sets för att jämföra och identifiera objekten med difference, på det här sättet: meat1 = set1.difference(set2) och meat2 = set2.difference(set1). Använd metoden speak() med båda kött-Sets du skapade för att bekräfta varje sets innehåll.
Nu när köttet har sorterats, gå till det mörka X-märket ovanför den blå mattan, vänd dig mot kylskåpet och använd funktionen place() för att lagra det Set shared du skapade, på det här sättet: player.place(shared). Med detta lägger du undan de ingredienser du inte lagar.
Gå till det gyllene X-märket, vänd dig mot skåpet och använd funktionen collect() för att hämta den sista listkonstanten benämnd ingredients och använd funktionen speak() för att bekräfta dess innehåll. Överför elementen från ingredients till ett nytt Set kallat set3. Nu när du har alla ingredienser, skapa två Sets, benämnda meal1 och meal2 med hjälp av metoden union genom att kombinera alla element som behövs för att laga mat.
För meal1, kombinera set3 och meat1 på följande vis: meal1 = set3.union(meat1). Gå till det mörka X-märket över den lila mattan och med Set meal1 använd funktionerna speak() för att bekräfta innehållet och place() för att laga maten i grytan.
För meal2 görs på samma sätt, men använd istället union-metoden med set3 och meat2. Gå till det mörka X-märket över den gula mattan och vänd dig mot grytan, använd funktionerna speak() och place() med meal2 för att slutföra nivån.