tanszek:oktatas:muszaki_informatika:adatszerkezetek_ii._dict_set_gyakorlo_feladatok
This is an old revision of the document!
Table of Contents
Adatszerkezetek II. – dict, set
Dictionary: kulcs–érték párok gyűjteménye, mint egy valódi szótár. Hasonlít a C nyelv struktúrájára.
- Kapcsos zárójel: {}
- Kulcs és érték kettősponttal elválasztva
- Kulcsok egyediek
- print(szemely[“nev”])
szemely = {
"nev": "Anna",
"kor": 25,
"varos": "Budapest"
}
Példa: Hozz létre egy dictionary-t saját adataiddal (név, kor, kedvenc szám). Írd ki külön a nevet. Írd ki az egész dictionary-t.
adat = {
"nev": "Anna",
"kor": 20,
"kedvenc_szam": 7
}
print("Név:", adat["nev"])
print("Teljes adat:", adat)
Módosítás és bővítés
- Új kulcs hozzáadása
- Érték módosítása
szemely["kor"] = 26 szemely["foglalkozas"] = "mérnök"
Példa: Hozz létre egy üres dictionary-t. Kérd be a felhasználó nevét és életkorát. Tárold el dictionary-ben. Írd ki az eredményt.
adat = {}
nev = input("Név: ")
kor = int(input("Kor: "))
adat["nev"] = nev
adat["kor"] = kor
print(adat)
Dictionary bejárása
szemely = {"nev": "Anna", "kor": 25}
for kulcs in szemely:
print(kulcs, szemely[kulcs])
#Kulcs–érték együtt:
for kulcs, ertek in szemely.items():
print(kulcs, ertek)
Példa: Hozz létre egy dictionary-t 3 tantárggyal és jeggyel. Írd ki az átlagot.
jegyek = {
"matek": 4,
"fizika": 5,
"angol": 3
}
osszeg = 0
for ertek in jegyek.values():
osszeg += ertek
atlag = osszeg / len(jegyek)
print("Átlag:", atlag)
Dict fő metódusai
| Metódus | Funkció | Példa |
|---|---|---|
| dict.keys() | Visszaadja a kulcsok listáját (view object) | d.keys() |
| dict.values() | Visszaadja az értékek listáját | d.values() |
| dict.items() | Visszaadja a kulcs-érték párokat | d.items() |
| dict.get(key[, default]) | Visszaadja a kulcshoz tartozó értéket, ha nincs → default | d.get(“x”, 0) |
| dict.pop(key[, default]) | Törli a kulcsot és visszaadja az értékét | d.pop(“x”) |
| dict.popitem() | Törli és visszaad egy tetszőleges kulcs-érték párt | d.popitem() |
| dict.update([other]) | Másik szótár vagy iterable alapján frissít | d.update({“y”:10}) |
| dict.clear() | Törli az összes elemet | d.clear() |
| dict.setdefault(key[, default]) | Ha nincs kulcs, létrehozza alapértelmezett értékkel | d.setdefault(“x”,0) |
| dict.copy() | Felületes másolat készít | d2 = d.copy() |
Set alapjai
Set: egyedi elemek gyűjteménye, halmaza.
- Nincs indexelés
- Nem tartalmaz duplikációt
szamok = {1, 2, 3, 3, 2}
print(szamok)
Példa: Kérj be 5 számot. Tárold el listában. Alakítsd át set-té. Írd ki az egyedi elemeket
szamok = []
for i in range(5):
szam = int(input("Adj meg egy számot: "))
szamok.append(szam)
egyedi = set(szamok)
print("Egyedi elemek:", egyedi)
Set fő metódusai
| set.add(x) | Hozzáad egy elemet | s.add(5) |
|---|---|---|
| set.update(iterable) | Több elemet ad hozzá | s.update([1,2,3]) |
| set.remove(x) | Eltávolítja az elemet (ha nincs → KeyError) | s.remove(2) |
| set.discard(x) | Eltávolítja az elemet, ha van (hiba nélkül) | s.discard(2) |
| set.pop() | Eltávolít egy tetszőleges elemet | s.pop() |
| set.clear() | Összes elem törlése | s.clear() |
| set.copy() | Felületes másolat | s2 = s.copy() |
| set.union(other) | Egyesítés | s.union({4,5}) |
| set.intersection(other) | Metszet | s.intersection({2,3}) |
| set.difference(other) | Különbség | s.difference({1,2}) |
| set.symmetric_difference(other) | Szimmetrikus különbség | s.symmetric_difference({1,2}) |
| set.issubset(other) | Részhalmaz-e | s.issubset({1,2,3}) |
| set.issuperset(other) | Felülhalmaz-e | s.issuperset({1}) |
Összefoglaló feladatok
Írj programot, ami:
- Bekér 5 nevet
- Minden névhez bekér egy pontszámot
- Dictionary-ben tárolja
- Kiírja a legmagasabb pontszámot elért nevet
eredmenyek = {}
for i in range(5):
nev = input("Név: ")
pont = int(input("Pontszám: "))
eredmenyek[nev] = pont
max_nev = None
max_pont = -1
for nev, pont in eredmenyek.items():
if pont > max_pont:
max_pont = pont
max_nev = nev
print("Legjobb eredmény:", max_nev, max_pont)
tanszek/oktatas/muszaki_informatika/adatszerkezetek_ii._dict_set_gyakorlo_feladatok.1771530747.txt.gz · Last modified: 2026/02/19 19:52 by szabom
