Sobes.tech
Junior

Kuidas erineb kogum massiivist?

sobes.tech AI

Vastus AI-lt

Pythonis on kogumik (set) — järjestamata un unikaalsete elementide kogum, ilma duplitaatideta. Nimekiri (tavaliselt esitatakse list või array moodulist) on järjestatud muutuvate elementidega kogum, kus järjekord on oluline ning võivad esineda duplitaatid.

Peamised erinevused:

  • Järjepidevus: Kogum ei ole järjestatud; elementide järjekord ei ole garanteeritud ning võib muutuda. Nimekiri/array on järjestatud; elementidel on indeksid.
  • Unikaalsus: Kogumi elemendid peavad olema unikaalsed. Nimekiri/array võib sisaldada duplitaatseid elemente.
  • Indekseerimine/viilud: Kogumid ei toeta indekseerimist ega viilude tegemist, kuna järjekord puudub. Nimekirjad/array toetavad indekseeritud läbikäimist ja viilude tegemist.
  • Operatsioonid: Kogumid toetavad matemaatilisi operatsioone (ühendamine, lõikumine, erinevus). Nimekiri/array omab teisi operatsioone (liitmine, kordamine).
  • Tõhusus: Elementide olemasolu kontroll (in) kogumis on teoreetiliselt kiirem (O(1) keskmiselt) võrreldes nimekirjaga (O(n)).

Näide:

# Kogumi loomine
my_set = {1, 2, 3, 2, 4} # Duplitaat 2 ignoreeritakse
# print(my_set) # Väljund {1, 2, 3, 4} (järjekord võib olla erinev)

# Nimekirja loomine
my_list = [1, 2, 3, 2, 4]
# print(my_list) # Väljund [1, 2, 3, 2, 4] (järjekord säilib ja duplitaatid on)

Operatsioonide võrdlus:

Operatsioon Kogum Nimekiri/array
in kontroll Kiire (O(1) keskmiselt) Aeglane (O(n) keskmiselt)
Lisamine add(), update() append(), extend(), insert()
Kustutamine remove(), discard(), pop() remove(), pop(), del
Ühendamine union() või ` `
Lõikumine intersection() või & Otse ei toetata
Juurdepääs indeksiga Ei Jah

Kogumeid kasutatakse, kui oluline on elementide unikaalsus ja kiire kontroll nende olemasolu kohta, ning järjekord ei ole oluline (näiteks duplitaatide eemaldamiseks, mitme operatsiooni teostamiseks). Nimekirju/array kasutatakse, kui oluline on elementide järjekord, vajalik on juurdepääs indeksiga ning võivad esineda duplitaatid.