Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom
Zaawansowane listy
Tworzenie listy zagnieżdżonej
Cel
Przechowuj przyprawy właściwie w stojaku na przyprawy, używając zagnieżdżonych list.
Jedna z półek na przyprawy jest pusta i wymaga właściwego uzupełnienia. Przyprawy są przechowywane, ale należy je odpowiednio uporządkować i umieścić w stojaku.
Ze względu na dużą ilość przedmiotów i fakt, że są one rozmieszczone na różnych półkach stojaka, zwykłe listy i słowniki nie wystarczą. W takich sytuacjach możesz użyć Nested Lists, czyli list, które zawierają jedną lub więcej list wewnątrz siebie.
Aby przechowywać przyprawy, najpierw musisz zdobyć słoiki niezbędne do ich właściwego przechowywania. Udaj się do znaku X oznaczonego kolorem złotym, staw czoła skrzyni i użyj funkcji collect() aby pobrać "empty jar", co ułatwi przechowywanie.
Gdy słoiki zostaną zebrane, udaj się do jasnych znaków X przed drewnianymi skrzyniami. Na tym poziomie znajduje się cztery stałe listy, po jednej dla każdej skrzyni, mianowicie: crate1, crate2, crate3 oraz crate4. Użyj funkcji speak() w połączeniu z tymi stałymi, aby określić zawartość każdej skrzyni. Stałe odpowiadają skrzyniom od prawej do lewej, na przykład player.speak(crate1).
Gdy ustalisz zawartość skrzyń, użyj List Comprehensions do stworzenia nowych list bez niepotrzebnych przedmiotów znajdujących się wewnątrz stałych list. Jeśli zawartość skrzyni zawiera: "package", "string" lub "stuffing", użyj tego samego wzoru, co w poprzednim rozdziale, aby odpowiednio przefiltrować listy, na przykład:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Kod powyżej utworzy nową listę zawierającą przedmioty, które nie zawierają słowa "string". Listy powinny być nazwane: herbs, spices, salts oraz sugars – będziesz wiedział, która lista powinna mieć którą nazwę, ponieważ przedmioty wewnątrz list noszą swoją nazwę.
Gdy wszystkie cztery listy zostaną utworzone, nadszedł czas, aby połączyć je w Nested List. Stwórz listę o nazwie seasonings i dołącz do niej utworzone listy, w następujący sposób:
seasonings = [ ] seasonings.append(herbs) .......
Gdy wszystkie przedmioty zostaną połączone w Nested List, udaj się do ciemnego znaku X na zielonym dywanie i staw czoła półce. Użyj funkcji speak() w połączeniu z zagnieżdżoną listą seasonings, aby wypowiedzieć przedmioty znajdujące się na każdej półce. Następnie użyj funkcji place() z tą listą, aby ukończyć poziom, na przykład: player.speak(seasonings).