Coding for KidsCoding for Kids
Креативни НиваПредизвикателстваРъководство за Учители
Гласувайте за функции
Курс по усъвършенствано разработване с 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, научен в предишното ниво, за да идентифицирате елементите, които се срещат и в двата Set. Използвайте двата Sets, за да сравните и идентифицирате елементите, както следва: shared = set1.intersection(set2). Използвайте метода speak() с Set, който създадохте, за да потвърдите съдържанието на множеството.

Накрая използвайте метод, наречен difference, който ще ни позволи да разделим елементите, които се срещат само в единия Set, а не и в другия. Създайте два (2) Sets, наречени meat1 и meat2, използвайте оригиналните два Sets, за да сравните и идентифицирате елементите, като използвате difference, както следва: meat1 = set1.difference(set2) и meat2 = set2.difference(set1). Използвайте метода speak() с двата месни Set, които създадохте, за да потвърдите съдържанието на всяко множество.

След като месата бъдат сортирани, ходете до тъмния 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, за да завършите нивото.

Книга с Код