Sobes.tech
Junior

V čom sa líši množina od poľa?

sobes.tech AI

Odpoveď od AI

Množina (set) v Pythone je neporiaden zbierka jedinečných prvkov bez duplikátov. Pole (zvyčajne reprezentované zoznammi list alebo poľami z modulu array) je usporiadaná zbierka meniace sa prvkov, kde je poradie dôležité, a môžu sa vyskytovať duplikáty.

Hlavné rozdiely:

  • Usporiadanie: Množina nie je usporiadaná; poradie prvkov nie je garantované a môže sa meniť. Zoznam/poľ je usporiadaný; prvky majú indexy.
  • Jedinečnosť: Prvky množiny musia byť jedinečné. Zoznam/poľ môže obsahovať duplikáty.
  • Indexovanie/rezanie: Množiny nepodporujú indexovanie a rezanie kvôli absencii poradia. Zoznamy/poľ podporujú prechádzanie podľa indexu a rezanie.
  • Operácie: Množiny podporujú matematické operácie nad množinami (zjednotenie, prienik, rozdiel). Zoznamy/poľ majú iné operácie (konkatenácia, opakovanie).
  • Výkon: Kontrola prítomnosti prvku (in) v množine je asymptoticky rýchlejšia (O(1) priemerné) v porovnaní so zoznamom (O(n) priemerné).

Príklad vytvorenia:

# Vytvorenie množiny
my_set = {1, 2, 3, 2, 4} # Duplikát 2 bude ignorovaný
# print(my_set) # Vypíše {1, 2, 3, 4} (poradie môže byť odlišné)

# Vytvorenie zoznamu
my_list = [1, 2, 3, 2, 4]
# print(my_list) # Vypíše [1, 2, 3, 2, 4] (zachová poradie a duplikáty)

Porovnanie operácií:

Operácia Množina Zoznam/Poľ
Kontrola in Rýchle (O(1) priemerné) Pomalé (O(n) priemerné)
Pridanie add(), update() append(), extend(), insert()
Odstránenie remove(), discard(), pop() remove(), pop(), del
Zjednotenie union() alebo ` `
Prienik intersection() alebo & Priamo nepodporované
Prístup podľa indexu Nie Áno

Množiny sa používajú, keď je dôležitá jedinečnosť prvkov a rýchla kontrola ich prítomnosti, a poradie nie je dôležité (napríklad na odstránenie duplikátov, vykonávanie viacerých operácií). Zoznamy/poľ sú používané, keď je dôležný poradie prvkov, je potrebný prístup podľa indexu, a môžu sa vyskytovať duplikáty.