Set (skup)

11.5 Set (skup) 

Kada kažem set ili skup mislim upravo na ono što si učio iz matematike. Dakle set je neka skupina objekata na jednom mestu, koja nema nikakav raspored tj objekti nisu raspoređeni ni na koji način. Mi ih koristimo samo ukoliko nam je bitno da neki objekat postoji u nekoj skupini ali nam nije važan redosled po kom su objekti raspoređeni.
Kada koristimo setove, mi možemo vršiti testiranje članstva (in i not in), možemo ispitivati da li je jedan skup podskup drugog, da pronalazimo zajedničke elemente između dva skupa, i tako dalje.
Pa hajde da pokažemo to na primeru:
>>> krimosi = {'mafija', 'trijada', 'klan', 'pilićari'} 
Vidimo da se skup definiše slično kao i rečnik, između vitičastih zagrada, samo što, ovoga puta, nemamo parove koje povezujemo, već u njega stavljamo objekte koje želimo.
Metode koje možemo koristiti prilikom rada sa skupovima su veoma slične onima koje smo učili u matematici, a možeš ih videti ako otkucaš:
>>> help(set)
Pa tako možemo i malko da se igramo sa njima:
>>> 'mafija' in krimosi 
True 
>>> 'ja' in krimosi 
False 
>>> elita = krimosi.copy() 
>>> elita.add('ja') 
>>> elita.issuperset(krimosi) 
True 
>>> krimosi.remove('klan') 
>>> krimosi.intersection(elita) 
{'mafija', 'trijada', 'pilićari'} 
>>> elita 
{'klan', 'mafija', 'trijada', 'ja', 'pilićari'} 
>>> 
Setovi funkcionišu na isti način kao i u matematici, pa ih zato ne bih dalje gnjavio, pošto ti baš i ne voliš matematiku.
Problem: I ne volim matematiku, ali i dalje ne vidim poentu ovih set-ova. Jel imaju oni nekakvu praktičnu ulogu ili da ih jednostavno „zaboravim“?
Odgovor: Zapravo, imaju jednu veoma korisnu osobinu – u setu, ne mogu da postoje dva ista objekta – tj. ukoliko su dva objekta ista – set ih smatra jednim objektom. Možda deluje konfuzno, ali zamisli da imaš neku listu, ili bilo koju drugu strukturu podataka, u kojoj imaš dosta duplikata. Treba da je očistiš, da sve stavke budu navedene samo jednom. Možeš napisati komplikovani algoritam, a možeš to uraditi i jednostavno:
>>> lista = ['ja', 'ja', 'ti', 5, 8, 'ja', 12, 5, 'lele', 'kuku', 8] 
>>> l = set(lista) 
>>> l 
{5, 8, 12, 'kuku', 'ja', 'lele', 'ti'} 
>>>

11.4 Sekvence Indeks 11.6 Reference

Primjedbe

Popularno ovog meseca

Gde pronaći novosti sa facebook stranica nakon velike promene koja ga je zadesila?

Dva načina da vratite svoj Windows 10 na fabričke vrednosti

Kako preuzeti video koji je neko postavio na facebook-u bez upotrebe dodatnih programa?

Više neće biti moguć besplatan prelazak na Windows 10

Prijateljski meč ŠK "Titel" - ŠK "Bukovac"

Kako manipulisati Windows licencom pomoću slmgr komande?

Tu je novi Qt creator 4.4.0!

Fake poet

Da li je poželjno biti anoniman na internetu (ili se predstavljati punim imenom i prezimenom)?

Kosmička era može da počne! 10, 9, 8, 7.... Naravno, pre 60 godina...