Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel
Liste Avansate
Crearea unei liste imbricate
Obiectiv
Depozitează condimentele corespunzător în raftul de condimente folosind liste imbricate.
Unul dintre rafturile de condimente este gol și trebuie reaprovizionat corespunzător, există condimente depozitate, dar acestea trebuie așezate și organizate corect în raft.
Din cauza numărului mare de obiecte și a faptului că sunt depozitate pe diferite rafturi într-un singur suport pentru condimente, listele și dicționarele obișnuite nu vor fi suficiente. Pentru astfel de situații, poți folosi Liste Imbricate, adică liste care conțin una sau mai multe liste în interiorul lor.
Pentru a depozita condimentele trebuie mai întâi să iei borcanele necesare depozitării corecte a obiectelor, mergi la semnul X auriu, îndreaptă-te spre ladă și folosește funcția collect() pentru a lua "empty jar" pentru a facilita depozitarea.
Odată colectate borcanele, mergi la semnele X luminoase din fața ladelor de lemn. În acest nivel sunt prezente patru constante de listă, câte una pentru fiecare ladă: crate1, crate2, crate3 și crate4. Folosește funcția speak() împreună cu aceste constante de listă pentru a determina conținutul fiecărei lăzi; constantele corespund ladelor de la dreapta la stânga, de exemplu player.speak(crate1).
După ce ai determinat conținutul ladelor, folosește List Comprehensions pentru a crea noi liste fără elemente inutile găsite în constantele de listă. Dacă conținutul unei lăzi include: "package", "string" sau "stuffing", folosește aceeași formulă ca în capitolul precedent pentru a crea listele, de exemplu:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Codul de mai sus va crea o nouă listă cu elemente care nu includ cuvântul "string". Listele trebuie să poarte numele: herbs, spices, salts și sugars, iar numele lor vor fi determinate de elementele pe care le conțin.
După ce toate cele patru liste au fost create, este momentul să le combini toate într-o Listă Imbricată. Creează o listă numită seasonings și adaugă listele create în noua listă, astfel:
seasonings = [ ] seasonings.append(herbs) .......
Odată ce toate elementele sunt puse împreună în Lista Imbricată, mergi la semnul X întunecat de pe covorul verde și întoarce-te spre raft. Folosește funcția speak() împreună cu lista imbricată seasonings pentru a verifica elementele de pe fiecare raft. După aceea, folosește funcția place() cu lista pentru a finaliza nivelul, astfel: player.speak(seasonings).