Поглиблений курс розробки на Python
Розділ
>
Рівень
Розширені списки
Створення вкладеного списку
Мета
Правильно збережіть приправи на полиці для спецій, використовуючи вкладені списки.
Одна з полиць для спецій порожня і потребує належного поповнення – приправи знаходяться на складі, але їх потрібно правильно підібрати, організувати та розмістити на полиці для спецій.
Через велику кількість предметів і той факт, що вони зберігаються на різних полицях однієї полиці для спецій, звичайних списків та словників буде недостатньо. Для таких ситуацій можна використовувати вкладені списки – це списки, що містять один або декілька внутрішніх списків.
Щоб зберегти спеції, спочатку потрібно взяти банки для правильного зберігання предметів: пройдіть до золотої позначки у вигляді X, зверніться до ящика і використовуйте функцію collect() для взяття "empty jar", щоб забезпечити збереження.
Після того як банки зібрані, перейдіть до світлих позначок X перед дерев'яними ящиками. На цьому рівні присутні чотири (4) константи списків, по одній для кожного ящика: crate1, crate2, crate3 та crate4. Використовуйте функцію speak() разом із цими константами списків, щоб визначити вміст кожного ящика; константи відповідають ящикам з правого на лівий, наприклад, player.speak(crate1).
Коли ви визначите вміст ящиків, використовуйте List Comprehensions для створення нових списків без зайвих елементів, що містяться в константах списків. Якщо вміст ящика включає: "package", "string" або "stuffing", використовуйте ту ж формулу, що і в попередньому розділі, для формування списків. Наприклад:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Вищенаведений код створить новий список з елементами, що не містять слово "string". Списки повинні називатися: herbs, spices, salts і sugars; ви зрозумієте, який список якого типу, з огляду на назву елементів у ньому.
Після того, як усі чотири списки створено, настав час об'єднати їх усі в вкладений список. Створіть список з назвою seasonings і додайте до нього створені вами списки, ось так:
seasonings = [ ] seasonings.append(herbs) .......
Після того, як усі предмети зібрані в вкладеному списку, перейдіть до темної позначки X на зеленому килимі та зверніться до полиці. Використовуйте функцію speak() разом із вкладеним списком seasonings, щоб перевірити елементи на кожній полиці. Після цього використовуйте функцію place() з цим списком, щоб завершити рівень, ось так: player.speak(seasonings).