Coding for KidsCoding for Kids
Креативни НиваПредизвикателстваРъководство за Учители
Гласувайте за функции
Курс по усъвършенствано разработване с Python
Глава
>
Ниво

Разширени списъци
Списъчни разбирания

В тази глава ще разгледаме нови начини за използване на списъци в Python, свързани с оптимизация, разделяне на задачи и дори създаване на големи многомерни списъци като матрици, които наподобяват таблици.

За този етап ще работим с List Comprehensions, които са списъци, създадени от други списъци чрез избиране само на определени компоненти от тях. Това се извършва и с много прост ред код, без да е необходимо ръчно въвеждане на списък или измисляне на сложни автоматизации.

Guide

Цел

Съберете и сортирайте всички кореноплодни зеленчуци в кладовката, за да можете да ги съхраните на правилното им място, използвайки list comprehensions.

В кладовката има няколко торби, пълни с кореноплодни зеленчуци, които трябва да бъдат сортирани, а именно: potatoes, onions и garlic, вероятно съдържащи зеленчуци, които са се развалили. Извадете зеленчуците, които са добри, и ги поставете в кутиите, където принадлежат.

За да го постигнете, трябва да определите какви елементи се намират във всяка торба. Съществуват три (3) константи със списъци, които съдържат информация за всяка от торбите, а именно: left_sack, middle_sack, right_sack. Тези константи със списъци съответстват на торбите в полето, разположени според имената им.

Отидете до светлинните X марки пред всяка торба и използвайте функцията speak() за да идентифицирате съдържанието на всяка торба, използвайки константите, например: player.speak(left_sack).

След като идентифицирате съдържанието във всяка торба, определете елементите, които трябва да бъдат премахнати, като например зеленчуци с: "Bad", "Spoiled" или "Rotten" в името им.

Трябва да създадете нови списъци, които съдържат само елементи, подходящи за консумация. Можете да го направите ръчно, но това ще отнеме време и може да бъде доста объркващо. За да направите това по-ефективно, можете да създадете списък от друг списък, което е известно като List Comprehension.

От трите (3) константи със списъци: left_sack, middle_sack, right_sack създайте три нови списъка с имена: potatoes, onions и garlic, които не съдържат нежелани елементи от торбите. List Comprehensions ви позволяват да създавате нови списъци, без да пишете куп код, например:

# Original list sack = ["Potatoes", "Sweet Potatoes", "Spoiled Potatoes" ] # List Comprehension potatoes = [x for x in sack if not "Spoiled" in x] # This will create a list named potatoes with: # ["Potatoes", "Sweet Potatoes"]

В горния пример, списъкът с името potatoes е създаден от списъка с име sack, съдържащ само ["Potatoes", "Sweet Potatoes"] и изключващ "Spoiled Potatoes". Това се постига чрез създаване на самостоятелен for цикъл, в който се използва x като индекс за преминаване през списъка и for / in изрази за идентифициране и изключване на нежелания елемент, тоест всеки низ, който съдържа думата "Spoiled".

За преглед, установете дали константите със списъци съдържат думата "Bad", "Spoiled" или "Rotten" в тях, използвайки функцията speak(). Създайте списъци potatoes, onions и garlic с помощта на List Comprehensions, като премахнете нежеланите елементи, които намерите във всеки списък.

След като тези списъци бъдат създадени, отидете до всяка от трите (3) златни X марки пред кутиите със знаците за зеленчуци и поставете списъците, използвайки функцията place(), в съответните кутии, за да завършите нивото. Местата са обозначени със знаците, а именно: onions в лявата кутия, potatoes в средната кутия и garlic в лявата кутия.

Книга с Код