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

Коментари

Popularno

Audacious - program za slušanje muzike

LibreOffice Calc - program za izradu tabela

Brasero - program za rezanje CD-ova

Bekstvo iz Titela

Minitube - program za praćenje YouTube sadržaja

Idemo

Bezimena

Pozadina Bekstva iz titela

Pažljivo sa MS Word dokumentima koje primate putem elektronske pošte

Šta je to "prosijački štap" i kako se do njega dolazi? (prvi deo)