Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom
Zaawansowane listy
Tworzenie zbioru
Cel
Zorganizuj przyprawy w szafce, przyporządkowując je do odpowiednich kategorii i umieszczając je na półkach przy użyciu Sets.
W szafce znajduje się kilka przypraw, które są gotowe do użycia, ale są nieuporządkowane i trudno dostępne. Należy je odpowiednio rozmieszczone na pustych półkach obok, które zostały już wyczerpane.
Przyprawy są rozproszone w trzech (3) listach, które można uporządkować przy użyciu Sets. Sets to listy, które nie zawierają powtarzających się elementów, mogą być również sortowane w różnych konfiguracjach i porównywane z innymi Sets, aby znaleźć lub wyróżnić konkretne elementy.
W szafce przechowywane są trzy stałe listy, które nazywają się: condiments1, condiments2 oraz condiments3. Udamy się do znaku X przy świetle, aby sprawdzić zawartość list przy użyciu funkcji speak() i zebrać wszystkie trzy (3) listy przy użyciu funkcji collect(), np.: player.speak(condiments1), player.collect(condiments1).
Sets tworzy się przez zapisanie set() z listą lub elementami listy jako argumentem, a następnie przypisanie jej nazwy. Utwórz trzy (3) Sets o nazwach: set1, set2 oraz set3, przypisując je do odpowiadających im stałych list, na przykład: set1 = set(condiments1).
Gdy już wszystko zostanie zebrane, udaj się do ciemnego znaku X nad zielonym dywanem, ustaw się naprzeciwko stołu i przefiltruj listy przy użyciu Sets. Użyj funkcji speak() dla wszystkich trzech Sets, które właśnie utworzyłeś, na przykład: player.speak(set1).
Następnie udaj się do ciemnego znaku X nad niebieskim dywanem i skonsoliduj elementy, sprawdzając, które przyprawy występują we wszystkich trzech (3) listach. Zrób to, używając metody intersection(), która pozwala porównać Sets i znaleźć elementy występujące we wszystkich trzech. Nazwij powstały Set duplicates i scal go, w ten sposób: duplicates = set1.intersection(set2,set3), użyj funkcji speak() aby zweryfikować powstały Set.
Udaj się następnie do czerwonego dywanu z ciemnym znakiem X i połącz wszystkie trzy Sets w jeden zestaw, używając metody union(). Działa ona w ten sam sposób, co metoda intersection(), ale zbiera wszystkie elementy ze wszystkich trzech (3) Sets i umieszcza je w jednym zestawie, eliminując duplikaty. Nazwij powstały Set all_items i scal go, w ten sposób: all_items = set1.union(set2,set3), użyj funkcji speak() aby zweryfikować powstały Set.
Gdy wszystko zostanie scalone, udaj się do złotego znaku X i ustaw się naprzeciwko półek, użyj funkcji place() aby umieścić wszystkie przyprawy na pustej półce, aby zakończyć poziom, w ten sposób: player.place(all_items).