HALMAZ kontra SZÓTÁR
Üres szótár (dictionary)
szotar = {}
vagy
szotar = dict()
Figyelem: a {} mindig szótár, nem halmaz!
Üres halmaz (set)
halmaz = set()
❌ Ez NEM halmaz:
halmaz = {} # ez üres szótár!
Halmaz
Halmaz (set): egy elem csak egyszer fordulhat elő benne, nem rendezett (nem lehet megmondani, melyik az első vagy utolsó elem és nem lehet indexszel hivatkozni egy-egy elemre), és az elemek nem változtathatók meg. Lehet viszont hozzárakni elemet, kiszedni belőle, tartalmazást vizsgálni, végiglépkedni az elemeken és a metszet és unió is megvalósítható a megfelelő függvényekkel.
A halmaz nem rendezett, a sorrend változhat!
HALMAZMŰVELETEK (NAGYON FONTOS!)
Unió (összeadás)
A = {1, 2, 3}
B = {3, 4, 5}
print(A | B)
Metszet (közös elemek)
print(A & B)
Különbség
print(A - B)
Szimmetrikus különbség
print(A ^ B)
Amiért nagyon hasznos: ha egy listából halmazt csinálunk, akkor a lista minden elem csak egyszer szerepel benne, vagyis eltávolítja a duplikációkat.
Pl. ha a lista = [1, 1, 2, 2, 3, 4, 5, 5, 5, 6, 9], akkor a halmaz=set(lista) eredménye {1, 2, 3, 4, 5, 6, 9}. Ilyenkor a 2 in halmaz eredménye True lesz.
Új elem hozzáadása: set.add(új elem)
Egy elem törlése: set.remove(törlendő_elem)
Elemek elérése:
for elem in halmaz:
print(elem)
Tartalom vizsgálat:
if 1 in (1, 2, 3):
print(’Benne van!’)
LISTÁBÓL HALMAZ, HALMAZBÓL LISTA (Listaelemek ismétlődésének törlése)
l1=[1,1,2,2]
s1=set(l1)
print(s1)
l2=list(s1)
print(l2)
MŰVELETEK HALMAZOKKAL
1. HALMAZ LÉTREHOZÁSA
halmaz = {1, 2, 3, 4}
Üres halmaz:
ures = set() # {} NEM halmaz, hanem üres szótár!
2. DUPLIKÁTUMOK AUTOMATIKUS ELTÁVOLÍTÁSA
szamok = {1, 2, 2, 3, 3, 3}
print(szamok) # {1, 2, 3}
3. ELEM HOZZÁADÁSA
halmaz.add(5)
Több elem hozzáadása:
halmaz.update([6, 7, 8])
4. ELEM ELTÁVOLÍTÁSA
halmaz.remove(3) # hibát dob, ha nincs benne
Biztonságosabb:
halmaz.discard(10) # nem dob hibát
5. ELLENŐRZÉS: BENNE VAN-E EGY ELEM?
if 4 in halmaz:
print("Benne van")
6. VÉGIGITERÁLÁS HALMAZON
for elem in halmaz:
print(elem)
x