Курс по усъвършенствано разработване с 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).

Книга с Код