Seznamy  16. dubna 2019

Materiály

Domácí projekty

0.

Udělej si seznam domácích zvířat. Budeš ho potřebovat v dalších úlohách. Domácí zvířata známe tato: "pes", "kočka", "králík", "had".

Napiš funkci, která přebere seznam zvířat a slovo a zjistí, jestli je toto slovo v seznamu.

„Zjistí“ znamená, že funkce vrátí True nebo False.

1.

Napiš funkci, která dostane dva seznamy jmen zvířat a vrátí tři seznamy:

  • zvířata, která jsou v obou seznamech současně (průnik množin: první ∩ druhá),
  • zvířata, která jsou jen v prvním seznamu (rozdíl množin: první - druhá),
  • zvířata, která jsou jen ve druhém seznamu (rozdíl množin: druhá - první).

Čeká tě procvičování práce se seznamy. Některé z projektů – a zvlášť ten poslední – potřebují trochu přemýšlení; nebudeš-li vědět jak dál, zeptej se na internetu nebo na sraze ostatních a řešte společně!

2.

Napiš funkci, která vrací jména domácích zvířat (ze seznamu zadaného argumentem), která jsou kratší než 5 písmen.

3.

Napiš funkci, která vrací jména domácích zvířat (ze seznamu zadaného argumentem), která začínají na k.

4.

Napiš program, který seřadí seznam domácích zvířat podle abecedy.

5.

Had byl pyšný na to, že je v abecedě první. Dokud nepřiletěla "andulka".

Abys hada uklidnila, vytvoř funkci, která zvířata seřadí podle abecedy, ale bude ignorovat první písmeno t.j. vrátí:

"had",
"pes",
"andulka",
"kočka",
"králík".

Postup:

  • Máš seznam hodnot, které chceš seřadit podle nějakého klíče. Klíč se dá z každé hodnoty vypočítat.
  • Vytvoř seznam dvojic (klíč, hodnota).
  • Seřaď tento seznam dvojic – dvojice se řadí nejdřív podle prvního prvku, pak druhého atd.
  • Nakonec vytvoř ze seznamu dvojic opět jen seznam hodnot.

Proč má zrovna had takovéhle výsadní postavení, zjistíš později.

Jedna klasická programovací úloha, která nejspíš pořádně potrápí tvé logické myšlení. Je nepovinná, nemáš-li na ni aspoň pár hodin, tak ji přeskoč.

6.

Napiš funkci, která převede římské číslice na číslo (int).

A nakonec projekt na přemýšlení.

7.

Může seznam obsahovat sám sebe? Zkus co nejjednodušeji udělat takový seznam, aby platilo:

seznam[5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][0] == 5