Продвинутый курс разработки на Python
Глава
>
Уровень
Продвинутые списки
Создание множества
Цель
Организуйте приправы в шкафу по правильным категориям и разместите их на полках с использованием Sets.
В шкафу хранятся несколько приправ, все они готовы к использованию, но они неорганизованы и их трудно достать. Их необходимо правильно распределить на пустых полках рядом, которые уже опустели.
Приправы распределены по трём (3) спискам, которые можно реорганизовать с использованием Sets. Sets — это списки, в которых нет повторяющихся элементов, их также можно упорядочить различными способами и сравнить с другими Sets, чтобы найти или выделить определённые элементы.
В шкафу хранятся три константных списка, которые называются: condiments1, condiments2 и condiments3. Подойдите к светящейся отметке X, чтобы проверить содержимое списков с помощью функции speak() и собрать все три (3) списка, используя функцию collect(), например: player.speak(condiments1), player.collect(condiments1).
Sets создаются путем записи set() с аргументом в виде списка или отдельных элементов списка, а затем им присваивается имя набора. Создайте три (3) Sets с именами: set1, set2 и set3, приравняв их к соответствующим константным спискам, например: set1 = set(condiments1).
После сбора подойдите к тёмной отметке X над зелёным ковром, повернитесь к столу и отфильтруйте списки с помощью Sets. Используйте функцию speak() для всех трёх Sets, которые вы только что создали, например: player.speak(set1).
Затем подойдите к тёмной отметке X над синим ковром и объедините элементы, проверив, какие приправы присутствуют во всех трёх (3) списках. Сделайте это с помощью метода intersection(), который позволяет сравнить Sets и найти элементы, присутствующие во всех трёх наборах. Назовите полученный набор duplicates и объедините их, например: duplicates = set1.intersection(set2,set3), после чего используйте функцию speak(), чтобы проверить полученный набор.
Подойдите к красному ковру с тёмной отметкой X и объедините все три Sets в один набор, используя метод union(). Он используется так же, как метод intersection(), но вместо этого берёт все элементы из всех трёх (3) Sets и помещает их в один набор без повторений. Назовите полученный набор all_items и объедините их, например: all_items = set1.union(set2,set3), после чего используйте функцию speak(), чтобы проверить полученный набор.
После того как всё будет объединено, подойдите к золотой отметке X и повернитесь к полкам. Используйте функцию place() для размещения всех приправ на пустой полке, чтобы завершить уровень, например: player.place(all_items).