# Szótár műveletek
# YT: https://www.youtube.com/watch?v=_kuolVSI2bw
# Kategória: szótárak
# Szótár létrehozása
szotar = {} # üres szótár
print(szotar)
print("\n----------------------\n") # elválasztó sor
# Szótár feltöltése
szotar["kutya"] = "dog"
szotar["macska"] = "cat"
szotar["egér"] = "mouse"
szotar["ló"] = "horse"
szotar["tehén"] = "cow"
print(szotar)
print("\n----------------------\n") # elválasztó sor
# Szótár elemeinek kiíratása
for key in szotar: # végig megy a szótár kulcsain
print(key, ":", szotar[key]) # kulcs : érték formában írja ki az elemeket
print("\n----------------------\n") # elválasztó sor
# Szótár kulcsainak kiíratása
for key in szotar: # végig megy a szótár kulcsain
print(key) # kiírja a kulcsokat
print("\n----------------------\n") # elválasztó sor
# Szótár értékeinek kiíratása
for key in szotar: # végig megy a szótár kulcsain
print(szotar[key]) # kiírja az értékeket
print("\n----------------------\n") # elválasztó sor
# .get() metódus
print(szotar.get("kutya")) # dog
print(szotar.get("kacsa")) # None -> ha nincs ilyen kulcs, None-t ad vissza
print("\n----------------------\n") # elválasztó sor
# .items() metódus
print(szotar.items()) # A .items() metódus egy listát ad vissza, amelyben a szótár kulcs-érték párok listája található tuple formájában
print("\n----------------------\n") # elválasztó sor
# .keys() metódus
print(szotar.keys()) # A .keys() metódus egy listát ad vissza, amelyben a szótár kulcsai találhatók
print("\n----------------------\n") # elválasztó sor
# .values() metódus
print(szotar.values()) # A .values() metódus egy listát ad vissza, amelyben a szótár értékei találhatók
print("\n----------------------\n") # elválasztó sor
# Adat hozzáadása a szótárhoz
szotar.update({"kacsa": "duck"}) # A .update() metódus egy új kulcs-érték párt ad hozzá a szótárhoz
szotar["madár"] = "bird" # Egy új kulcs-érték párt ad hozzá a szótárhoz
# A két módszer közötti különbség, hogy az .update() metódus több kulcs-érték párt is hozzá tud adni egyszerre,
# míg a második módszer csak egy kulcs-érték párt tud hozzáadni egyszerre
print(szotar)
print("\n----------------------\n") # elválasztó sor
# Adatok módosítása
szotar["kutya"] = "canine" # A kutya értékét módosítjuk
szotar.update({"tehén": "cattle"}) # A madár értékét módosítjuk
print(szotar)
print("\n----------------------\n") # elválasztó sor
# Adatok törlése
del szotar["macska"] # A macska kulcs-érték párt töröli a szótárból
print(szotar)
# .pop() metódus
print(szotar.pop("kutya")) # dog -> visszaadja az értéket és eltávolítja az értéket a szótárból
print("\n----------------------\n") # elválasztó sor
# Szótár hossza
print(len(szotar)) # A szótár elemeinek számát adja vissza
print("\n----------------------\n") # elválasztó sor
# .copy() metódus
uj_szotar = szotar.copy() # A .copy() metódus egy másolatot készít a szótárról
print(uj_szotar)
print("\n----------------------\n") # elválasztó sor
# .clear() metódus
uj_szotar.clear() # A .clear() metódus törli a szótár összes elemét
print(uj_szotar) # {}
print("\n----------------------\n") # elválasztó sor
# Kulcs létének ellenőrzése
if "kutya" in szotar: # ha a kutya kulcs benne van a szótárban
print("Van kutya a szótárban") # kiírja, hogy van kutya a szótárban
else: # opcionális
print("Nincs kutya a szótárban") # kiírja, hogy nincs kutya a szótárban
print("\n----------------------\n") # elválasztó sor
# Érték létének ellenőrzése
if "canine" in szotar.values(): # ha a canine érték benne van a szótárban
print("Van canine a szótárban") # kiírja, hogy van canine a szótárban
else: # opcionális
print("Nincs canine a szótárban") # kiírja, hogy nincs canine a szótárban
print("\n----------------------\n") # elválasztó sor
# Beágyazott szótár (szótár a szótárban)
szotar = {
"tanulo1": {"nev": "Anna", "kor": 25},
"tanulo2": {"nev": "Bence", "kor": 22}
}
print(szotar["tanulo1"]["nev"]) # Kiírja: Anna
# Háromszintű beágyazott szótár
allatok = {
"emlős": {"ló": {"tulajdonság": "négylábú","élőhely": "legelő",},"kutya": {"tulajdonság": "négylábú","élőhely": "ház körül",},},
"madár": {"veréb": {"tulajdonság": "kétlábú","élőhely": "erdő",},"sas": {"tulajdonság": "kétlábú", "élőhely": "hegyvidék",},},
}
print(allatok["emlős"]["ló"]["tulajdonság"]) # Kiírja: négylábú
print(allatok["madár"]["sas"]["élőhely"]) # Kiírja: hegyvidék
# Bejárás a szótárban
for kategoria, fajok in allatok.items():
print(f"Kategória: {kategoria}")
for faj, adatok in fajok.items():
print(f" Faj: {faj}")
for kulcs, ertek in adatok.items():
print(f" {kulcs}: {ertek}")