set
Mire használható a set?
A set adattípus egy olyan adatszerkezet, amely egyedi elemek gyűjteménye, amelyeket nem lehet rendezni. A set egy mutálható adatszerkezet, ami azt jelenti, hogy a hozzáadhatunk vagy eltávolíthatunk elemeket belőle.
A set adatstruktúra hasznos lehet, ha szeretnénk eltávolítani a duplikált elemeket egy gyűjteményből, vagy ha szeretnénk ellenőrizni, hogy egy elem szerepel-e egy adott gyűjteményben. A set-nek nincs indexe, így az elemek eléréséhez iterálnunk kell rajta.
A set létrehozásához kapcsos zárójeleket ({}) használunk, és vesszővel elválasztjuk az elemeket. A set támogatja a matematikai halmazok műveleteit is, mint például az uniót, metszetet, különbséget.
Példa
Például, ha az első halmazunk {1, 2, 3, 4, 5} és a második halmazunk {4, 5, 6, 7, 8}, akkor az uniójuk {1, 2, 3, 4, 5, 6, 7, 8}, a metszetük {4, 5}, a különbségük pedig {1, 2, 3} és {6, 7, 8}.
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# Unió
union_set = set1 | set2
print(union_set) # Output: {1, 2, 3, 4, 5, 6, 7, 8}
# Metszet
intersection_set = set1 & set2
print(intersection_set) # Output: {4, 5}
# Különbség
difference_set = set1 - set2
print(difference_set) # Output: {1, 2, 3}
difference_set = set2 - set1
print(difference_set) # Output: {8, 6, 7}
A set adatszerkezet lehetővé teszi az elemek hozzáadását vagy eltávolítását is a add()
és a remove()
metódusok segítségével.
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
fruits.remove("banana")
print(fruits) # Output: {"apple", "cherry", "orange"}
Fontos megjegyezni, hogy a set-ben csak hashelhető objektumok szerepelhetnek, azaz azok, amelyekhez hozzárendelhető egy egyedi hash érték. Ezek például a számok, stringek és tuple-ök, de nem tartoznak ide a listák és a dictionary-k.
Összetett - Példa
# Hétvégi sportesemények résztvevői
foci_resztvevok = {"Anna", "Béla", "Cili", "Dénes", "Emma", "Feri", "Géza", "Hedi"}
kosar_resztvevok = {"Anna", "Cili", "Dénes", "Géza", "Hedi", "István", "Judit"}
# Közös résztvevők kinyerése
kozos_resztvevok = foci_resztvevok.intersection(kosar_resztvevok)
# Csak foci résztvevői
csak_foci_resztvevok = foci_resztvevok - kozos_resztvevok
# Csak kosár résztvevői
csak_kosar_resztvevok = kosar_resztvevok - kozos_resztvevok
print("Közös résztvevők:", kozos_resztvevok)
print("Csak foci résztvevők:", csak_foci_resztvevok)
print("Csak kosár résztvevők:", csak_kosar_resztvevok)
Ebben a példában a set
adattípus segítségével tároljuk azoknak a sporteseményeknek a résztvevőit, amelyek hétvégén zajlanak. A két halmaz közös elemeit a intersection()
metódussal, míg a két halmaz különbségeit az a - b
művelettel számoljuk ki. Az eredményeket pedig a print()
függvénnyel jelenítjük meg a képernyőn.