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.