Sobes.tech
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).