Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel
Liste Avansate
Sortarea seturilor
Obiectiv
Organizează și gătește mese folosind Seturi pentru a sorta și compune ingredientele.
Ar fi o idee bună să începi să pregătești mâncare, deoarece există câteva ingrediente în frigider, toate împachetate, precum și niște ierburi pe care le poți folosi pentru a da gust mesei. Toate materialele sunt stocate în liste, așa că ar fi o idee bună să folosești Seturi pentru a consolida elementele și a beneficia la maximum de gătit.
Există trei (3) constante de listă, dintre care două (2) sunt carne, denumite: pack1 și pack2, iar una (1) este materiale de gătit, denumită ingredients. Mergi la semnul X întunecat de pe covorul portocaliu și îndreaptă-te spre frigider, folosește funcția collect() pentru a lua pack1 și pack2 din frigider, astfel: player.collect(pack1).
Odată ce carnea a fost colectată, mergi la semnul X luminos și îndreaptă-te spre tocător; aici vom verifica conținutul pachetelor folosind funcția speak() cu ambele constante de listă pe care le-ai colectat. De aici, vom consolida elementele folosind Seturi, ca în nivelul precedent. Creează două Seturi numite set1 și set2 și, folosind funcția set(), atribuie pack1 și pack2 acestora, de exemplu: set1 = set(pack1).
Odată ce listele au fost consolidate în Seturi, este timpul să sortezi și să compartimentezi elementele în Seturi mai mici pentru comoditate.
Prima metodă pentru a realiza acest lucru se numește systemic_difference, care ne va permite să separăm elementele care nu sunt comune între fiecare Set. Creează un Set numit unique și folosește cele două Seturi pentru a compara și identifica elementele unice folosind systemic_difference, astfel: unique = set1.symmetric_difference(set2). Folosește metoda speak() cu Setul creat pentru a confirma conținutul acestuia.
Continuă sortarea prin crearea unui Set numit shared și folosește metoda intersection, învățată la nivelul anterior, pentru a identifica elementele găsite în ambele Seturi. Folosește cele două Seturi pentru a compara și identifica elementele, astfel: shared = set1.intersection(set2). Folosește metoda speak() cu Setul creat pentru a confirma conținutul acestuia.
În final, folosește o metodă numită difference, care ne va permite să separăm elementele care se găsesc doar într-un Set și nu în celălalt. Creează două (2) Seturi numite meat1 și meat2, folosește cele două Seturi originale pentru a compara și identifica elementele folosind difference, astfel: meat1 = set1.difference(set2) și meat2 = set2.difference(set1). Folosește metoda speak() cu ambele Seturi de carne create pentru a confirma conținutul fiecărui set.
Odată ce carnea a fost sortată, mergi la semnul X întunecat de deasupra covorului albastru, îndreaptă-te spre frigider și folosește funcția place() pentru a depozita Setul shared creat, astfel: player.place(shared). Astfel vei pune deoparte ingredientele pe care nu le gătești.
Mergi la semnul X auriu, îndreaptă-te spre dulap și folosește funcția collect() pentru a achiziționa ultima constantă de listă numită ingredients și folosește funcția speak() pentru a confirma conținutul acesteia. Transferă elementele din ingredients într-un nou Set numit set3. Acum că ai toate ingredientele, creează două Seturi, numite meal1 și meal2, folosind metoda union pentru a combina toate elementele necesare gătitului.
Pentru meal1, combină set3 și meat1 astfel: meal1 = set3.union(meat1). Mergi la semnul X întunecat de pe covorul violet și, folosind Setul meal1, folosește funcția speak() pentru a confirma conținutul și funcția place() pentru a găti masa în oală.
Pentru meal2, procedează la fel, dar folosește metoda union cu set3 și meat2. Mergi la semnul X întunecat de pe covorul galben și îndreaptă-te spre oală, folosește funcțiile speak() și place() cu meal2 pentru a finaliza nivelul.