Junior
Milyen objektumokat lehet egy halmazba helyezni Pythonban?
sobes.tech MI
Válasz az MI-től
Pythonban egy halmazba (set) behelyezhetünk változatlan (hashelhető) objektumokat.
Ezek közé tartoznak:
- Számok (egész, lebegőpontos, komplex)
- Sztringek
- Tuple (feltéve, hogy minden eleme szintén változatlan)
- Frozenset (a set változatlan változata)
Olyan objektumok, amelyeket nem lehet egy halmazba helyezni:
- Listák (list)
- Halmazok (set) - de használható a frozenset
- Szótárak (dict)
Példa:
# Változatlan objektumok, amelyeket be lehet helyezni egy halmazba
valid_set = {1, "alma", (1, 2), frozenset({3, 4})}
# Változtatható objektumok, amelyeket nem lehet be helyezni egy halmazba
# invalid_set = {[1, 2], {3, 4}, {"a": 1}} # Ez TypeError-t fog eredményezni
A hash-elés egy folyamat, amely során egy objektumhoz fix értéket (hash) számítunk ki. Ahhoz, hogy egy objektum hash-elhető legyen, rendelkeznie kell a __hash__() metódussal, és a hash értékének a teljes életciklusa alatt nem szabad változnia. A Pythonban az immutable (változtathatatlan) objektumok természetüknél fogva hash-elhetőek.