Avansert Pythonutviklingskurs
Kapittel
>
Nivå
Avanserte lister
Sortering av mengder
Mål
Organiser og lag et måltid ved å bruke Sets for å sortere og sette sammen ingredienser.
Det ville vært en god idé å begynne å forberede noe mat, for det er noen ingredienser i kjøleskapet som er pakket inn, samt noen urter du kan bruke for å gi retten smak. Alle materialer er lagret i lister, så det ville vært lurt å bruke Sets for å konsolidere elementene og få mest mulig ut av matlagingen din.
Det finnes tre (3) listekonstanter, hvorav to (2) er kjøtt, med navn: pack1 og pack2, og én (1) er matlagingsmaterialer, med navn ingredients. Gå til det mørke X-merket på det oransje teppet og vend deg mot kjøleskapet, bruk funksjonen collect() for å hente pack1 og pack2 fra kjøleskapet, slik: player.collect(pack1).
Når kjøttet er hentet, gå til det lyse X-merket og vend deg mot skjærebrettet. Her skal vi verifisere innholdet i pakkene ved å bruke funksjonen speak() med begge listekonstantene du hentet. Derfra skal vi konsolidere elementene ved å bruke Sets, slik vi gjorde i forrige nivå. Opprett to Sets med navn set1 og set2, og bruk set()-funksjonen for å tilordne pack1 og pack2 til dem, for eksempel: set1 = set(pack1).
Når listene har blitt konsolidert til Sets, er det på tide å sortere og dele inn elementene i mindre Sets for enkelhets skyld.
Den første metoden for å oppnå dette kalles systemic_difference. Dette lar oss skille ut de elementene som ikke deles mellom de to Sets. Opprett et Set kalt unique og bruk de to Setsene til å sammenligne og identifisere de unike elementene ved hjelp av systemic_difference, slik: unique = set1.symmetric_difference(set2). Bruk speak()-metoden med det Setet du opprettet for å bekrefte innholdet i settet.
Fortsett med sorteringen ved å opprette et Set kalt shared og bruk intersection-metoden, som ble lært i forrige nivå, for å identifisere elementene som finnes i begge Sets. Bruk de to Setsene til å sammenligne og identifisere elementene, slik: shared = set1.intersection(set2). Bruk speak()-metoden med det Setet du opprettet for å bekrefte innholdet i settet.
Til slutt, bruk en metode kalt difference, som lar oss skille ut elementene som kun finnes i det ene Setet og ikke i det andre. Opprett to (2) Sets kalt meat1 og meat2, og bruk de to opprinnelige Setsene til å sammenligne og identifisere elementene ved hjelp av difference, slik: meat1 = set1.difference(set2) og meat2 = set2.difference(set1). Bruk speak()-metoden med begge kjøtt-Sets du opprettet for å bekrefte innholdet i hvert sett.
Når kjøttet er sortert, gå til det mørke X-merket over det blå teppet, vend deg mot kjøleskapet og bruk funksjonen place() for å lagre det Setet shared du opprettet, slik: player.place(shared). Med dette legger du bort ingrediensene du ikke skal bruke til matlaging.
Gå til det gylne X-merket, vend deg mot skapet og bruk funksjonen collect() for å hente den siste listekonstanten med navnet ingredients og bruk funksjonen speak() for å bekrefte innholdet. Overfør elementene fra ingredients til et nytt Set kalt set3. Nå som du har alle ingrediensene, opprett to Sets, kalt meal1 og meal2, ved å bruke union-metoden for å kombinere alle elementene som trengs for matlaging.
For meal1, kombiner set3 og meat1 slik: meal1 = set3.union(meat1). Gå til det mørke X-merket over det lilla teppet, og bruk speak()-funksjonen med Setet meal1 for å bekrefte innholdet, og deretter place()-funksjonen for å koke måltidet i gryten.
For meal2 gjør det samme, men bruk i stedet union-metoden med set3 og meat2. Gå til det mørke X-merket over det gule teppet og vend deg mot gryten, bruk speak()- og place()-funksjonene med meal2 for å fullføre nivået.