Sobes.tech
Junior

Care este diferența dintre un set și un array?

sobes.tech AI

Răspuns de la AI

În Python, un set este o colecție nesortată de elemente unice, fără duplicate. O listă (de obicei reprezentată prin list sau array-uri din modulul array) este o colecție ordonată de elemente modificabile, unde ordinea contează și pot exista duplicate.

Diferențele principale:

  • Ordonare: Seturile nu sunt ordonate; ordinea elementelor nu este garantată și poate varia. Listele/array-urile sunt ordonate; elementele au indici.
  • Unicitate: Elementele dintr-un set trebuie să fie unice. Listele/array-urile pot conține duplicate.
  • Indexare/Tăiere: Seturile nu suportă indexare sau tăiere din cauza lipsei de ordine. Listele/array-urile suportă parcurgerea după index și tăiere.
  • Operații: Seturile suportă operații matematice precum uniune, intersecție, diferență. Listele/array-urile au alte operații (concatenare, repetare).
  • Performanță: Verificarea apartenenței (in) într-un set este, în medie, mai rapidă (O(1)) comparativ cu o listă (O(n)).

Exemplu de creare:

# Crearea unui set
my_set = {1, 2, 3, 2, 4} # Duplicatul 2 va fi ignorat
# print(my_set) # Va afișa {1, 2, 3, 4} (ordinea poate varia)

# Crearea unei liste
my_list = [1, 2, 3, 2, 4]
# print(my_list) # Va afișa [1, 2, 3, 2, 4] (păstrează ordinea și duplicatele)

Compararea operațiilor:

Operație Set Listă/Array
Verificare in Rapid (O(1) mediu) Lent (O(n) mediu)
Adăugare add(), update() append(), extend(), insert()
Ștergere remove(), discard(), pop() remove(), pop(), del
Uniune union() sau ` `
Intersecție intersection() sau & Nu este suportată direct
Acces pe index Nu Da

Seturile sunt folosite când unicitatea elementelor și verificarea rapidă a existenței lor sunt importante, iar ordinea nu contează (de exemplu, pentru eliminarea duplicatelor, efectuarea de operații multiple). Listele/array-urile sunt folosite când ordinea elementelor este importantă, se necesită acces pe index și pot exista duplicate.