tanszek:oktatas:muszaki_informatika:adatszerkezetek_ii._dict_set_gyakorlo_feladatok
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tanszek:oktatas:muszaki_informatika:adatszerkezetek_ii._dict_set_gyakorlo_feladatok [2026/02/19 19:49] – szabom | tanszek:oktatas:muszaki_informatika:adatszerkezetek_ii._dict_set_gyakorlo_feladatok [2026/02/19 19:56] (current) – szabom | ||
|---|---|---|---|
| Line 47: | Line 47: | ||
| print(adat) | print(adat) | ||
| </ | </ | ||
| - | |||
| **Dictionary bejárása** | **Dictionary bejárása** | ||
| Line 78: | Line 77: | ||
| </ | </ | ||
| + | ==== Dict fő metódusai ==== | ||
| + | ^ Metódus | ||
| + | | dict.keys() | ||
| + | | dict.values() | ||
| + | | dict.items() | ||
| + | | dict.get(key[, | ||
| + | | dict.pop(key[, | ||
| + | | dict.popitem() | ||
| + | | dict.update([other]) | ||
| + | | dict.clear() | ||
| + | | dict.setdefault(key[, | ||
| + | | dict.copy() | ||
| ---- | ---- | ||
| ==== Set alapjai ==== | ==== Set alapjai ==== | ||
| - | Set: egyedi elemek gyűjteménye. | + | Set: egyedi elemek gyűjteménye, halmaza. |
| * Nincs indexelés | * Nincs indexelés | ||
| * Nem tartalmaz duplikációt | * Nem tartalmaz duplikációt | ||
| Line 101: | Line 112: | ||
| print(" | print(" | ||
| </ | </ | ||
| + | |||
| + | ==== Set fő metódusai ==== | ||
| + | |||
| + | ^ set.add(x) | ||
| + | | set.update(iterable) | ||
| + | | set.remove(x) | ||
| + | | set.discard(x) | ||
| + | | set.pop() | ||
| + | | set.clear() | ||
| + | | set.copy() | ||
| + | | set.union(other) | ||
| + | | set.intersection(other) | ||
| + | | set.difference(other) | ||
| + | | set.symmetric_difference(other) | ||
| + | | set.issubset(other) | ||
| + | | set.issuperset(other) | ||
| Line 106: | Line 133: | ||
| ==== Összefoglaló feladatok ==== | ==== Összefoglaló feladatok ==== | ||
| - | Írj programot, ami: | + | **1. feladat** |
| * Bekér 5 nevet | * Bekér 5 nevet | ||
| * Minden névhez bekér egy pontszámot | * Minden névhez bekér egy pontszámot | ||
| Line 130: | Line 157: | ||
| </ | </ | ||
| + | **2. feladat:** Van egy dict, ahol a kulcs a diák neve, az érték egy set az általa elvégzett tantárgyak jegyeivel. | ||
| + | * Adj hozzá egy új tantárgyat minden diáknak | ||
| + | * Ellenőrizd, | ||
| + | * Számold meg, hány diák kapott 1-es jegyet | ||
| <sxh python> | <sxh python> | ||
| + | diakok = { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| - | </ | + | # Új tantárgy 4-es jeggyel minden diáknak |
| + | for nev, jegyek in diakok.items(): | ||
| + | jegyek.add(4) | ||
| - | <sxh python> | + | # Ellenőrzés: |
| + | for nev, jegyek in diakok.items(): | ||
| + | if 5 in jegyek: | ||
| + | print(f" | ||
| + | # 1-es jegyek száma | ||
| + | egyessel = sum(1 in jegyek for jegyek in diakok.values()) | ||
| + | print(" | ||
| </ | </ | ||
| + | **3. feladat: | ||
| + | * Egy új szállítmány érkezik egy másik dict-ből → frissítsd a raktárt | ||
| + | * Távolítsd el azokat a termékeket, | ||
| + | * Írd ki a teljes készletet | ||
| <sxh python> | <sxh python> | ||
| + | raktar = {" | ||
| + | szallitas = {" | ||
| - | </ | + | # Raktár frissítése |
| - | <sxh python> | + | for termek, db in szallitas.items(): |
| + | raktar[termek] = raktar.get(termek, | ||
| + | # Elfogyott termékek törlése | ||
| + | torlendo = [k for k,v in raktar.items() if v == 0] | ||
| + | for k in torlendo: | ||
| + | raktar.pop(k) | ||
| + | |||
| + | print(" | ||
| </ | </ | ||
| + | **4. feladat:** Adott két set a bolt A és B kínálatával. | ||
| + | * Írd ki, mely termékek vannak mindkét boltban (metszet) | ||
| + | * Melyek vannak csak az egyik boltban (szimmetrikus különbség) | ||
| + | * Egyesítsd a készleteket | ||
| <sxh python> | <sxh python> | ||
| + | boltA = {" | ||
| + | boltB = {" | ||
| + | print(" | ||
| + | print(" | ||
| + | boltA.update(boltB) | ||
| + | print(" | ||
| </ | </ | ||
| + | **5. feladat: | ||
| + | * Adj hozzá új projektet minden dolgozónak | ||
| + | * Töröld azokat a projekteket, | ||
| + | * Írd ki a dolgozónkénti projektlistát | ||
| <sxh python> | <sxh python> | ||
| + | dolgozok = { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | # Új projekt D mindenkihez | ||
| + | for projektek in dolgozok.values(): | ||
| + | projektek.add(" | ||
| + | |||
| + | # Ellenőrizzük, | ||
| + | osszes = set().union(*dolgozok.values()) | ||
| + | nem_aktiv = {" | ||
| + | print(" | ||
| + | print(" | ||
| + | for nev, projektek in dolgozok.items(): | ||
| + | print(nev, ":", | ||
| </ | </ | ||
| + | 6. feladat: Adott egy szöveg string. | ||
| + | * Készíts dict-et, ahol a kulcs a szó, az érték a darabszám | ||
| + | * Távolítsd el a ritkán előforduló szavakat (pl. egyszer előforduló) | ||
| + | * Írd ki a leggyakoribb szót | ||
| <sxh python> | <sxh python> | ||
| + | szoveg = " | ||
| + | szavak = szoveg.split() | ||
| + | szavak_szam = {} | ||
| + | |||
| + | for szo in szavak: | ||
| + | szavak_szam[szo] = szavak_szam.get(szo, | ||
| + | |||
| + | # Ritka szavak törlése | ||
| + | for szo in list(szavak_szam.keys()): | ||
| + | if szavak_szam[szo] == 1: | ||
| + | szavak_szam.pop(szo) | ||
| + | |||
| + | # Leggyakoribb szó | ||
| + | leggyakoribb = max(szavak_szam, | ||
| + | print(" | ||
| + | print(" | ||
| </ | </ | ||
| + | |||
tanszek/oktatas/muszaki_informatika/adatszerkezetek_ii._dict_set_gyakorlo_feladatok.1771530576.txt.gz · Last modified: 2026/02/19 19:49 by szabom
