Avanceret Python Udviklingskursus
Kapitel
>
Niveau
Avancerede lister
Oprettelse af en indlejret liste
Mål
Opbevar krydderierne korrekt i krydderirækken ved at bruge indlejrede lister.
En af krydderirækkerne er tom, og den skal fyldes korrekt op; der er krydderier i opbevaring, men de skal passes ordentligt, organiseres og placeres korrekt i krydderirækken.
På grund af det store antal elementer og det faktum, at de opbevares på forskellige hylder i en krydderirække, vil normale lister og ordbøger ikke være tilstrækkelige. I sådanne situationer kan du bruge Indlejrede Lister, som er lister, der indeholder en eller flere lister indeni dem.
For at opbevare krydderierne skal du først skaffe krukker for at opbevare elementerne korrekt, gå til det gyldne X-mærke, vend dig mod kassen og brug collect()-funktionen til at hente "empty jar" for at lette opbevaringen.
Når krukkerne er samlet, gå til de lyse X-mærker foran de trækasser. Der er fire (4) listekonstanter i dette niveau, en for hver kasse, disse er: crate1, crate2, crate3, og crate4. Brug speak()-funktionen med disse listekonstanter for at bestemme indholdet af hver kasse, konstanterne svarer til kasserne fra højre mod venstre, for eksempel player.speak(crate1).
Når du har fastslået indholdet af kasserne, brug List Comprehensions til at oprette nye lister uden unødvendige elementer fundet i listekonstanterne. Hvis indholdet af en kasse inkluderer: "package", "string" eller "stuffing", brug den samme formel som i det forrige kapitel for at udvælge listerne, for eksempel:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Koden ovenfor opretter en ny liste med elementer, der ikke inkluderer ordet "string". Listerne skal navngives: herbs, spices, salts og sugars, du vil vide, hvilken liste der skal hedde hvad, fordi elementerne i listerne bærer navnet.
Når alle fire lister er oprettet, er det tid til at kombinere dem alle til en indlejret liste. Opret en liste ved navn seasonings og tilføj de lister, du har oprettet, inde i den nye liste, sådan her:
seasonings = [ ] seasonings.append(herbs) .......
Når alle elementerne er samlet i den indlejrede liste, gå hen til det mørke X-mærke på den grønne måtte og vend dig mod hylden. Brug speak()-funktionen sammen med den indlejrede liste seasonings for at bekræfte elementerne på hver hylde. Herefter brug place()-funktionen med listen for at fuldføre niveauet, sådan her: player.speak(seasonings).