Junior
Meséljen a set adattípusról.
sobes.tech MI
Válasz az MI-től
A set adattípus Pythonban egy nem rendezett, egyszeri elemekből álló sorozatot képvisel.
Fő jellemzők:
- Nem rendezett: A halmaz elemei nem rendelkeznek fix sorrenddel.
- Egyszeri: Minden érték csak egyszer szerepelhet a halmazban.
- Változtatható: A halmazok elemeket adhatnak hozzá vagy távolíthatnak el (kivéve a
frozenset). - Az elemek hash-olhatók legyenek: Támogatottak a változatlan típusok (számok, szövegek, tuple-ök). A változtatható típusokat (listák, szótárak) nem lehet használni.
Létrehozás:
# Üres halmaz létrehozása
üres_halmaz = set()
# Halmaz lista alapján
listám = [1, 2, 3, 2, 4]
halmaz_lista_ból = set(listám) # halmaz_lista_ból {1, 2, 3, 4} lesz
# Halmaz létrehozása kapcsos zárójelek segítségével
közvetlen_halmaz = {5, 6, 7}
Fő műveletek:
| Művelet | Metódus | Leírás |
|---|---|---|
| Elem hozzáadása | add(element) |
Hozzáadja az element-et a halmazhoz. |
| Elem eltávolítása | remove(element) |
Eltávolítja az element-et. Hibát dob, ha nincs. |
| Elem eltávolítása (biztonságos) | discard(element) |
Eltávolítja az element-et. Nem csinál semmit, ha nincs. |
| Unió | union(), ` |
` |
| Metszet | intersection(), & |
Új halmazt ad vissza, ami a közös elemeket tartalmazza. |
| Különbség | difference(), - |
Az első halmaz elemei, amik a másodikban nem szerepelnek. |
| Szimmetrikus különbség | symmetric_difference(), ^ |
Az elemek, amik csak az egyik halmazban vannak. |
| Létezik-e? | in |
Logikai érték, hogy az elem benne van-e a halmazban. |
Példák:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
# Unió
unio = set1.union(set2) # unio = {1, 2, 3, 4, 5, 6}
# Metszet
metszet = set1 & set2 # metszet = {3, 4}
# Különbség
differencia = set1 - set2 # differencia = {1, 2}
# Létezik-e?
van = 3 in set1 # van = True
QA alkalmazások:
- Duplikátumok keresése adatsorokban.
- Két eredményhalmaz összehasonlítása (pl. várt és tényleges eredmények).
- Egy szekvenciából egyedi elemek szűrése.
- Gyors ellenőrzés, hogy egy elem benne van-e egy nagy adatgyűjteményben.
frozenset: A halmaz változatlan (immutable) változata. Akkor használjuk, ha változatlan halmazra van szükség (pl. kulcsként szótárban).