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