Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň
Pokročilé seznamy
Vytváření vnořeného seznamu
Cíl
Uložte koření správně do stojanu na koření pomocí vnořených seznamů.
Jeden ze stojanů na koření je prázdný a je třeba jej řádně doplnit, koření je sice na skladě, ale musí být správně uspořádáno a umístěno do stojanu.
Vzhledem k velkému množství položek a skutečnosti, že jsou uloženy na různých policích ve stojanu na koření, obyčejné seznamy a slovníky nebudou dostačující. Pro takové situace můžete použít vnořené seznamy, což jsou seznamy obsahující jeden nebo více seznamů uvnitř.
Abyste mohli koření uložit, nejprve si musíte vzít sklenice, abyste položky řádně uschovali. Přejděte ke zlaté značce X, postavte se čelem k bedně a použijte funkci collect() pro sebrání "empty jar" k usnadnění uložení.
Jakmile budou sklenice sebrány, přejděte ke světlým značkám X před dřevěnými bednami. V této úrovni jsou k dispozici čtyři (4) konstanty seznamů, jedna pro každou bednu, a to: crate1, crate2, crate3 a crate4. Použijte funkci speak() s těmito konstantami seznamů a určete obsah jednotlivých beden; konstanty odpovídají bednám zprava doleva, například player.speak(crate1).
Jakmile zjistíte obsah beden, použijte listové pochopení k vytvoření nových seznamů bez zbytečných položek, které se v konstantách seznamů nacházejí. Pokud obsah bedny zahrnuje: "package", "string" nebo "stuffing", použijte stejný vzorec jako v předchozí kapitole k úpravě seznamů, například:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Výše uvedený kód vytvoří nový seznam s položkami, které neobsahují slovo "string". Seznamy by měly být pojmenovány: herbs, spices, salts a sugars; podle položek v seznamech bude zřejmé, který seznam má jaký název.
Jakmile budou vytvořeny všechny čtyři seznamy, je čas je zkombinovat do vnořeného seznamu. Vytvořte seznam nazvaný seasonings a do něj přidejte vámi vytvořené seznamy, například takto:
seasonings = [ ] seasonings.append(herbs) .......
Jakmile budou všechny položky spojeny do vnořeného seznamu, přejděte k tmavé značce X na zeleném koberci a postavte se čelem k polici. Použijte funkci speak() ve spojení s vnořeným seznamem seasonings k ověření položek na každé polici. Poté použijte funkci place() s tímto seznamem k dokončení úrovně, například: player.speak(seasonings).