✦ Osnove Pythona Kolekcije

Koncept 10 · Skupovi

Zadrži jedinstvene vrednosti.
Ne oslanjaj se na redosled.

Skup čuva jedinstvene vrednosti kada je važnije da li vrednost pripada skupu nego na kojoj se poziciji nalazi. Koristite ga da uklonite duplikate i proverite da li vrednost postoji.

01 Uči02 Isprobaj03 Predvidi

Učenje kao gost

Učiš kao gost — sačuvaj svoj napredak!

Napravi besplatan nalog i uči uz Sloby AI mentora, proveru razumevanja i praćenje napretka.

Cela platforma je besplatna tokom 2026. Foundations ostaje zauvek besplatan.

Skup čuva jedinstvene vrednosti kada je pripadnost važnija od pozicije.

Već znate da liste mogu da rastu i menjaju se, a torke čuvaju fiksne povezane vrednosti zajedno. Skup rešava drugačiji problem: svaku vrednost čuva samo jednom. Koristite skup kada duplikati treba da nestanu ili kada je korisno pitanje „Da li je ova vrednost ovde?“, a ne „Koja je vrednost na poziciji 0?“

tags = ["python", "django", "python", "ai"]
unique_tags = set(tags)

print(unique_tags)
print(len(unique_tags))

Lista može sadržati istu vrednost više puta. set(tags) čuva samo jedinstvene vrednosti, zato ovaj skup ima tri elementa: "python", "django" i "ai". Ne oslanjajte se na prikazani redosled skupa; važno je da duplikati nestaju.

Literal skupa koristi vitičaste zagrade: skills = {"python", "django", "ai"}. Ako dvaput napišete "python", i dalje nastaje samo jedan element "python". len(skills) broji elemente koji zaista ostanu nakon uklanjanja duplikata.

↳

Ne birajte skup kada su važne pozicije: Lista ili torka su obično bolji izbor kada su redosled ili pozicija važni. Ne koristite skills[0] sa skupom i ne pišite logiku programa koja zavisi od toga koji se element prvi prikaže ili obiđe u skupu.

Pripadnost postavlja prirodno pitanje o skupu
skills = {"python", "django", "ai"}

print("django" in skills)
print("java" in skills)

value in set daje Boolean rezultat. Ovde je "django" in skills True, dok je "java" in skills False. To povezuje skupove sa vrednostima bool, operatorima i uslovima koje već znate.

Dodajte ili odbacite jednu vrednost
skills = {"python", "django", "ai"}

skills.add("data")
skills.add("python")
skills.discard("django")

print(skills)

add() dodaje jednu vrednost. Dodavanje vrednosti koja već postoji ne pravi duplikat. discard() uklanja vrednost kada postoji i ne stvara problem kada je nema.

Unija, presek i razlika
a = {1, 2, 3}
b = {3, 4, 5}

print(a | b)
print(a & b)
print(a - b)

a | b je unija: sve jedinstvene vrednosti koje se pojavljuju u bar jednom skupu, {1, 2, 3, 4, 5}. a & b je presek: vrednosti zajedničke za oba skupa, {3}. a - b je razlika: vrednosti koje su u a, ali nisu u b, {1, 2}.

Napravite prazan skup pomoću set()
empty_set = set()
empty_dictionary = {}

{} nije prazan skup u Pythonu; on pravi prazan rečnik. Koristite set() kada vam je potreban prazan skup. Rečnici imaju posebnu lekciju kasnije.

Pratite skup dok se njegovo stanje menja
skills = {"python", "django", "python"}

skills.add("ai")
skills.add("python")

print(len(skills))
print("django" in skills)

Zastanite pre pokretanja. Duplikat "python" ne pravi još jedan element. "ai" se dodaje, a ponovno dodavanje "python" ne menja ništa. Konačni skup ima tri jedinstvena elementa, zato je len(skills) 3; provera pripadnosti za "django" je True.

Izaberite kolekciju prema onome što je važno

  1. Izaberite skup za jedinstvenost i pripadnostKoristite skup za jedinstvene posetioce, oznake, dozvole, izabrane kategorije ili zajednička interesovanja kada duplikati treba da nestanu.
  2. Izaberite listu kada je redosled važanKoristite listu kada su važni redosled ili pozicija, kada duplikati mogu biti važni ili kada se elementi menjaju redom.
  3. Izaberite torku za fiksnu povezanu grupuKoristite torku kada fiksne povezane vrednosti pripadaju zajedno i njihove pozicije imaju značenje.

Česte početničke greške

  • Očekivanje da duplikati ostanu{"python", "python"} ne predstavlja dve odvojene vrednosti "python"; skup je čuva samo jednom.
  • Pokušaj indeksiranja skupaskills[0] ne radi zato što skup, za razliku od liste ili torke, ne omogućava indeksiranje po poziciji.
  • Tumačenje {} kao praznog skupaempty = {} pravi rečnik. Za prazan skup koristite empty = set().
  • Oslanjanje na redosled skupaNe dozvolite da logika programa zavisi od toga koji se element skupa prvi prikaže ili obiđe. Koristite listu ili torku kada je taj redosled deo značenja.

Python radni prostor

Učitavanje Python okruženja…

Pre pokretanja koda predvidite koliko jedinstvenih vrednosti skup sadrži, rezultat provere pripadnosti i šta se menja posle add(). Zatim pokušajte da dodate vrednost koja već postoji.

sets.pyPython
IzlazČeka se Python
Okruženje pregledača se učitava. I dalje možeš da menjaš primer koda.

Pyodide pokreće Python u Web Worker-u pregledača. Zaustavlja se i ponovo pokreće ako se kod predugo izvršava. Izvršavanje u pregledaču nije potpuna bezbednosna granica; ne unosi tajne i ne oslanjaj se na njega za izolaciju nepouzdanog koda.

Šta će ovaj program ispisati?

Pročitaj svaku operaciju pre nego što izabereš odgovor.

a = {1, 2, 3}
b = {3, 4, 5}

print(len(a & b))
print(len(a | b))
Izaberi izlaz
Sloby, maskota Python AI Tutora

Tvoj mentor za učenje

Prijavite se da pitate Slobyja

Napravite besplatan nalog ili se prijavite za AI smernice tokom učenja.

Prijavite se da proverite svoje razumevanje

Napravite besplatan nalog ili se prijavite da biste dobili AI povratnu informaciju i sačuvali napredak u učenju.

Python AI Tutor · Uči razumevanjem, a ne samo pokretanjem koda.