Sobes.tech
Junior

Aké objekty je možné vložiť do množiny v Pythone?

sobes.tech AI

Odpoveď od AI

V Pythone je možné do množiny (set) umiestniť nemenné (hashovateľné) objekty.

Tieto zahŕňajú:

  • Čísla (celé, desatinné, komplexné)
  • Reťazce
  • Tupy (za predpokladu, že všetky ich prvky sú tiež nemenné)
  • Frozenset (nemenná verzia set)

Objekty, ktoré nie je možné umiestniť do množiny:

  • Zoznamy (list)
  • Množiny (set) - ale je možné použiť frozenset
  • Slovníky (dict)

Príklad:

# Nemenné objekty, ktoré je možné umiestniť do množiny
valid_set = {1, "jablko", (1, 2), frozenset({3, 4})}

# Menné objekty, ktoré nie je možné umiestniť do množiny
# invalid_set = {[1, 2], {3, 4}, {"a": 1}} # Vyvolá TypeError

Hashovanie je proces výpočtu pevnej hodnoty (hash) pre objekt. Aby bol objekt hashovateľný, musí mať metódu __hash__() a jeho hashová hodnota sa nesmie počas jeho životného cyklu meniť. Nemenné objekty v Pythone sú, svojou povahou, hashovateľné.