🐍 Python · Úlohy so zoznamom

Precvič si
zoznamy!

8 praktických úloh – filtrovanie, triedenie, transformácia. Napíš riešenie, skontroluj sa a pozri si vzorové riešenie!

8
Úlohy
0
Vyriešené
3
Úrovne obtiažnosti
POSTUP
0/8
01
Filtrovanie párnych čísel
Máš zoznam čísel. Vyfiltruj z neho všetky párne čísla a ulož ich do nového zoznamu!
Použi operátor % (zvyšok po delení).
Ľahká
Dáta: cisla = [3, 8, 15, 22, 7, 44, 19, 6, 31, 10]
Tvoje riešenie:
Skontroluj zvyšok: ak x % 2 == 0, číslo je párne. Môžeš použiť for cyklus s .append(), alebo list comprehension!
cisla = [3, 8, 15, 22, 7, 44, 19, 6, 31, 10] # 1. riešenie – list comprehension parne = [x for x in cisla if x % 2 == 0] print(parne) # [8, 22, 44, 6, 10] # 2. riešenie – for cyklus parne = [] for x in cisla: if x % 2 == 0: parne.append(x) print(parne)
02
Slová začínajúce na „A"
Máš zoznam slov. Vyber tie, ktoré začínajú na písmeno „A" alebo „a"!
Tip: slovo[0] je prvé písmeno, alebo použi metódu .startswith().
Ľahká
Dáta: slova = ["apple", "Banana", "Avocado", "cherry", "apricot", "blueberry", "almond"]
Tvoje riešenie:
Skús: slovo.lower().startswith("a") – takto zachytíš aj veľké A!
slova = ["apple", "Banana", "Avocado", "cherry", "apricot", "blueberry", "almond"] a_slova = [s for s in slova if s.lower().startswith("a")] print(a_slova) # ['apple', 'Avocado', 'apricot', 'almond']
03
Počítanie záporných čísel
Máš zoznam čísel. Spočítaj, koľko záporných čísel sa v ňom nachádza, a vypíš výsledok!
Ľahká
Dáta: cisla = [4, -2, 7, -9, 0, -1, 5, -3, 8, 2]
Tvoje riešenie:
Vyfiltruj záporné čísla (x < 0), potom použij len() na ich spočítanie!
cisla = [4, -2, 7, -9, 0, -1, 5, -3, 8, 2] zaporne = [x for x in cisla if x < 0] print(len(zaporne)) # 4 # Alebo na jeden riadok: print(sum(1 for x in cisla if x < 0)) # 4
04
Filtrovanie dlhých slov
Máš zoznam slov. Vyfiltruj tie, ktoré majú aspoň 6 písmen! Funkcia len() funguje aj na reťazcoch.
Stredná
Dáta: slova = ["dom", "pocitac", "jablko", "skola", "les", "ucebnica", "nos", "matematika"]
Tvoje riešenie:
len("hello") je 5. Podmienka teda je: len(slovo) >= 6
slova = ["dom", "pocitac", "jablko", "skola", "les", "ucebnica", "nos", "matematika"] dlhe = [s for s in slova if len(s) >= 6] print(dlhe) # ['pocitac', 'jablko', 'ucebnica', 'matematika']
05
Zdvojenie čísel
Máš zoznam čísel. Vytvor nový zoznam, v ktorom je každý prvok dvojnásobkom pôvodného!
Stredná
Dáta: cisla = [1, 5, 3, 8, 2, 7]
Tvoje riešenie:
List comprehension: [x * 2 for x in cisla] – každý prvok vynásobíš číslom 2!
cisla = [1, 5, 3, 8, 2, 7] dvojnasobky = [x * 2 for x in cisla] print(dvojnasobky) # [2, 10, 6, 16, 4, 14]
06
Priemer známok
Máš zoznam známok. Vypočítaj priemer! Použi vstavaný funkcie sum() a len(). Výsledok vypíš zaokrúhlený na 2 desatinné miesta pomocou round()!
Stredná
Dáta: znamky = [1, 2, 1, 3, 2, 1, 2, 3, 1, 2]
Tvoje riešenie:
priemer = sum(znamky) / len(znamky), potom round(priemer, 2) na zaokrúhlenie.
znamky = [1, 2, 1, 3, 2, 1, 2, 3, 1, 2] priemer = sum(znamky) / len(znamky) print(round(priemer, 2)) # 1.8
07
Odstránenie duplicít
Máš zoznam, v ktorom sa opakujú prvky. Vytvor nový zoznam, kde každé číslo figuruje len raz, pričom zachovaj pôvodné poradie!
Ťažká
Dáta: cisla = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
Tvoje riešenie:
Prechádzaj cyklom a pridaj prvok len ak ešte nie je v novom zozname: if x not in jedinecne. set() tiež funguje, ale neuchováva poradie!
cisla = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] # Riešenie zachovávajúce poradie jedinecne = [] for x in cisla: if x not in jedinecne: jedinecne.append(x) print(jedinecne) # [3, 1, 4, 5, 9, 2, 6] # Kratšie, ale poradie NIE JE zaručené: # jedinecne = list(set(cisla))
08
Triedenie slov podľa dĺžky
Máš zoznam slov. Zoraď ich podľa dĺžky vzostupne! Pri rovnakej dĺžke zoraď abecedne. Použi sort(key=...)!
Ťažká
Dáta: slova = ["Python", "kod", "zoznam", "premenna", "if", "cyklus", "hodnota"]
Tvoje riešenie:
slova.sort(key=len) zoradí podľa dĺžky. Pre viac kľúčov použi tuple: key=lambda s: (len(s), s.lower())
slova = ["Python", "kod", "zoznam", "premenna", "if", "cyklus", "hodnota"] # Podľa dĺžky, pri rovnakej dĺžke abecedne slova.sort(key=lambda s: (len(s), s.lower())) print(slova) # ['if', 'kod', 'Python', 'cyklus', 'zoznam', 'hodnota', 'premenna']
🏆 Vyriešil(a) si všetkých 8 úloh! Fantastická práca – si skutočný majster Python zoznamov!