Поглиблений курс розробки на Python
Розділ
>
Рівень
Розширені списки
Сортування множин
Мета
Організуйте та приготуйте страви, використовуючи Sets для сортування та комбінування інгредієнтів.
Було б гарною ідеєю почати готувати їжу, оскільки в холодильнику є кілька інгредієнтів, які ретельно упаковані, а також деякі трави, які можна використати для додання страві аромату. Всі матеріали зберігаються в списках, тому буде доцільно використати Sets для консолідації елементів та максимально ефективного приготування страви.
Є три (3) постійних списки: два (2) з них містять м'ясо, з іменами: pack1 та pack2, а один (1) містить кухонні матеріали, з іменем ingredients. Пройдіть до темного позначення X на помаранчевому килимі та зверніться до холодильника, використовуйте функцію collect(), щоб забрати pack1 та pack2 з холодильника, як от: player.collect(pack1).
Після того, як м'ясо буде зібране, пройдіть до світлого позначення X і зверніться до роздільної дошки; тут ми перевіримо вміст пакувань, використовуючи функцію speak() з обома списковими константами, які ви зібрали. Звідси ми об'єднаємо елементи за допомогою Sets, як у попередньому рівні. Створіть два Sets з іменами set1 та set2, і за допомогою функції set() присвойте їм pack1 та pack2, наприклад: set1 = set(pack1).
Після того, як списки були об'єднані в Sets, настав час відсортувати та розподілити елементи на менші Sets для зручності.
Перший метод досягнення цього називається systemic_difference, він дозволить відокремити елементи, які не спільні для кожного Set. Створіть Set з назвою unique та використайте два Sets для порівняння та виявлення унікальних елементів за допомогою systemic_difference, як от: unique = set1.symmetric_difference(set2). Використайте метод speak() з створеним Set, щоб підтвердити його вміст.
Продовжте сортування, створивши Set з назвою shared та використовуючи метод intersection, вивчений на попередньому рівні, щоб визначити елементи, що знаходяться в обох Sets. Використайте два Sets для порівняння та ідентифікації елементів, як от: shared = set1.intersection(set2). Використайте метод speak() з створеним Set, щоб підтвердити його вміст.
Нарешті, використайте метод difference, який дозволить нам відокремити елементи, що зустрічаються лише в одному з Sets, а не в іншому. Створіть два (2) Sets з назвами meat1 та meat2, використайте два початкових Sets для порівняння та визначення елементів за допомогою difference, як от: meat1 = set1.difference(set2) та meat2 = set2.difference(set1). Використайте метод speak() з обома Sets м'яса, щоб підтвердити вміст кожного з них.
Після того, як м'ясо було відсортовано, пройдіть до темного позначення X над синім килимом, зверніться до холодильника та використайте функцію place(), щоб зберегти створений Set shared, як от: player.place(shared). Таким чином, ви відкладете інгредієнти, які не використовуєте для приготування страви.
Пройдіть до золотого позначення X, зверніться до шафи та використайте функцію collect(), щоб забрати останню списокову константу з назвою ingredients та використайте функцію speak(), щоб підтвердити її вміст. Перенесіть елементи з ingredients до нового Set з назвою set3. Тепер, коли у вас є всі інгредієнти, створіть два Sets з назвами meal1 та meal2, використовуючи метод union для об'єднання всіх необхідних елементів для приготування страви.
Для meal1 об'єднайте set3 та meat1, як от: meal1 = set3.union(meat1). Пройдіть до темного позначення X над фіолетовим килимом та, використовуючи Set meal1, застосуйте функції speak() для підтвердження вмісту та place() для приготування страви в казані.
Для meal2 виконайте те саме, але замість цього використайте метод union з set3 та meat2. Пройдіть до темного позначення X над жовтим килимом та зверніться до казана, використовуючи функції speak() та place() з meal2 для завершення рівня.