Szerkesztés alatt!
Az oldal további része szerkesztés alatt áll, a tartalma minden további értesítés nélkül többször, gyakran, jelentősen megváltozhat!
Halmaz¶
Tartalom
A Python set adattípusa. Feladatmegoldások set segítségével.
A halmazok (set) alapjai¶
A halmaz olyan adattípus, amely egyedi elemeket tartalmaz, sorrend nélkül.
Pythonban a halmazokat a set típus reprezentálja.
Halmaz létrehozása¶
A halmazokat kapcsos zárójelekkel ({}) hozhatjuk létre:
Egyszerű halmaz
1 2 3 | |
A sorrend eltérhet, mivel a halmaz nem rendezett gyűjtemény.
Üres halmaz létrehozásához a set() függvényt használjuk, mert a {} üresen szótárt (dict) jelentene.
1 | |
Üres halmaz létrehozása
A {} üresen nem halmaz, hanem szótár típus!
Halmazműveletek¶
A halmazokon ugyanazok a műveletek használhatók, mint a matematikában.
Unió – | vagy union()¶
Azon elemek halmaza, melyek a két adott halmazban megtalálhatóak. Ez a két halmaz összes elemét jelenti, azokat is, amelyek csak az egyik halmazban szerepelnek, illetve azokat is, amelyek mindkét halmazban, tehát a halmazok metszetében szerepelnek.
Két halmaz uniója
1 2 3 4 | |
Metszet – & vagy intersection()¶
Azon elemek halmaza, melyek mindkét halmazban megtalálhatóak.
Két halmaz metszete
1 2 3 4 | |
Különbség – - vagy difference()¶
Azon elemek halmaza, melyek szerepelnek egy adott halmazban, de egy másikban nem. A lenti példa szerint az A - B azokat a számokat jelenti, melyek szerepelnek az A halmazban, de nincsenek benne a B halmazban.
Halmazkülönbség
1 2 3 4 | |
Szimmetrikus különbség – ^ vagy symmetric_difference()¶
Azon elemek halmaza, melyek szerepelnek valamelyik halmazban, de nem mind a kettőben. Kissé matekosabb megközelítésben nézve, ez a két halmaz uniójának és metszetének a különbsége.
Szimmetrikus különbség
1 2 3 4 | |
Elemvizsgálat és módosítás¶
Elem ellenőrzése: in és not in¶
Elem keresése
1 2 3 | |
Elem hozzáadása, törlése¶
1 2 3 4 5 | |
A discard() biztonságosabb
Ha nem vagyunk biztosak abban, hogy egy elem benne van-e, használjunk discard()-ot, mert az nem okoz hibát.
Duplikátumok eltávolítása¶
Halmazokat gyakran használunk egyedi elemek kiszűrésére listákból.
Ismétlődő elemek eltávolítása
1 2 3 4 | |
Ha újra listát szeretnénk, használjuk a list() függvényt:
1 | |
Példák halmazműveletekre¶
Diákok halmazai
1 2 3 4 5 6 7 | |
Kimenet:
1 2 3 4 | |
Gyakorló feladatok¶
Halmazok és egyedi elemek¶
1. feladat – Egyedi karakterek
Kérj be egy szót a felhasználótól, és írd ki, hány különböző betűt tartalmaz!
Példa:
1 2 | |
Példamegoldás
1 2 3 | |
2. feladat – Közös diákok
Két lista tartalmazza a különböző tárgyak hallgatóit:
1 2 | |
Példamegoldás
1 2 3 4 5 6 7 8 9 10 | |
3. feladat – Csak az egyik tárgyon
A fenti példában írd ki azokat, akik pontosan az egyik tárgyra járnak (szimmetrikus különbség).
Példamegoldás
1 2 3 4 | |
4. feladat – Egyedi betűk két szóban
Kérj be két szót, és írd ki:
- Mely betűk vannak mindkettőben
- Mely betűk csak az egyikben
Példamegoldás
1 2 3 4 5 6 7 8 | |
5. feladat – Hiányzó betűk
Kérj be egy mondatot, és írd ki, mely betűk nem szerepelnek benne az angol abc 26 betűje közül.
Tipp: abc = set("abcdefghijklmnopqrstuvwxyz")
Példamegoldás
1 2 3 4 5 | |
6. feladat – Közös számok
Adott két halmaz, amelyek számokat tartalmaznak. Írd ki, hány közös elemük van!
Kiindulásnak két halmaz, amelyekben van közös elem:
1 2 | |
Példamegoldás
1 2 3 4 | |
Összefoglalás¶
A halmazok segítségével egyszerűen kezelhetünk:
- egyedi elemeket,
- közös és különböző elemeket,
- duplikátumok eltávolítását,
- gyors elemkeresést.
A halmazműveletek hatékony és elegáns megoldást kínálnak számos problémára.