Coding for KidsCoding for Kids
Kreativní ÚrovněVýzvyPrůvodce pro Učitele
Hlasovat pro funkce
Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň

Pokročilé seznamy
Výrazy seznamu

V této kapitole se budeme zabývat novými způsoby používání seznamů v Pythonu, pokud jde o optimalizaci, rozdělení na části a dokonce tvorbu velkých vícerozměrných seznamů, jako jsou matice, které velmi připomínají tabulky.

Pro tuto úroveň budeme pracovat s List Comprehensions, což jsou seznamy, které lze vytvořit z jiných seznamů výběrem pouze určitých složek. To se také provádí velmi přímočarým jedním řádkem kódu, aniž by bylo třeba ručně zadávat seznam nebo vyvíjet komplikované automatizace.

Guide

Cíl

Seberte a setřiďte všechny kořenové zeleniny ve spíži, abyste je mohli uložit na správné místo pomocí list comprehension.

Ve spíži se nachází několik pytlů plných kořenové zeleniny, které je třeba setřídit, a to takové, jako potatoes, onions a garlic; pravděpodobně obsahují zeleninu, která se pokazila. Vyjměte zeleninu, která je v pořádku, a uložte ji do tralek, kam patří.

Abychom toho dosáhli, musíte identifikovat, jaké položky se nacházejí v každém pytli. Existují tři (3) konstantní seznamy, které obsahují informace o každém pytli, a jmenují se: left_sack, middle_sack, right_sack. Tyto konstantní seznamy odpovídají pytlům na poli v místech určených jejich názvy.

Jděte k osvětleným značkám X před každým pytlem a použijte funkci speak() k identifikaci obsahu každého pytle pomocí konstant, například: player.speak(left_sack). Jakmile identifikujete obsah každého pytle, určete položky, které je třeba odstranit, například zeleninu obsahující ve svém názvu "Bad", "Spoiled" nebo "Rotten".

Musíte vytvořit nové seznamy, které obsahují pouze položky vhodné ke konzumaci. Mohli byste to udělat ručně, ale zabere to hodně času a může to být docela matoucí. Pro efektivnější řešení můžete vytvořit seznam z jiného seznamu, což je známo jako List Comprehension.

Ze tří (3) konstantních seznamů: left_sack, middle_sack, right_sack vytvořte tři nové seznamy pojmenované: potatoes, onions a garlic, které nebudou obsahovat nežádoucí položky z pytlů. List Comprehensions vám umožňují vytvářet nové seznamy bez psaní spousty kódu, například:

# 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"]

V uvedeném příkladu je seznam pojmenovaný potatoes vytvořen ze seznamu sack, obsahující pouze ["Potatoes", "Sweet Potatoes"] a vynechávající "Spoiled Potatoes". To je dosaženo vytvořením samostatného cyklu for, v tomto případě s použitím x jako indexu pro procházení seznamu a příkazů for / in k identifikaci a vynechání nežádoucích prvků, tedy každého řetězce obsahujícího slovo "Spoiled".

Pro zopakování, zjistěte, zda konstanty seznamů obsahují slovo "Bad", "Spoiled" nebo "Rotten" pomocí funkce speak(), a vytvořte seznamy potatoes, onions a garlic pomocí List Comprehensions, přičemž odstraňte nežádoucí prvky nalezené v každém seznamu.

Jakmile jsou tyto seznamy vytvořeny, jděte ke každé ze tří (3) zlatých značek X před tralkami se značkami zeleniny a umístěte seznamy pomocí funkce place() do odpovídajících tralek, abyste úroveň dokončili. Místa jsou vyznačena značkami, a to: onions na levé tralce, potatoes na střední tralce a garlic na levé tralce.

Kniha Kódu