Primeri uporabe množice

Primer 2

Recimo, za niz

niz = 'marko skače marko skače po zeleni trati'

bi funkcija VseBesede morala vrniti takšno tabelo:

['marko', 'po', 'skače', 'trati', 'zeleni']

Takšna funkcija bi nam lahko koristila pri izdelavi lastnega slovarčka. V slovarju se namreč vsaka beseda pojavi samo enkrat, poleg tega pa so besede urejene po abecedi. Kako bi rešili to nalogo? Najprej moramo iz niza izluščiti posamezne besede. To najlažje dosežemo s pythonovo funkcijo split, ki smo jo že spoznali. Če so besede v nizu niz med seboj ločene s presledki, potem klic niz.split() vrne tabelo, ki vsebuje te besede. Na primer:

>>> niz = 'marko skače marko skače po zeleni trati'
>>> tabelaBesedSPodvojitvami = niz.split()
>>> tabelaBesedSPodvojitvami
['marko', 'skače', 'marko', 'skače', 'po', 'zeleni', 'trati']

Seveda pa to še ni iskani rezultat, saj tabela lahko vsebuje večkratne pojavitve iste besede, pa tudi urejena še ni. Večkratnih pojavitev se najlažje znebimo tako, da na podlagi tabele izdelamo množico (ta množica bo vsebovala vse besede tabele, a brez podvojitev), nato pa besede iz nastale množice prepišemo v novo tabelo, pri čemer nam pomaga pythonova funkcija list:


>>> mnozicaBesed = set(tabelaBesedSPodvojitvami)
>>> mnozicaBesed
{'skače', 'marko', 'po', 'zeleni', 'trati'}
>>> tabelaBesedBrezPodvojitev = list(mnozicaBesed)
['skače', 'marko', 'po', 'zeleni', 'trati']

Tabelo besed brez podvojitev moramo le še urediti po abecedi. Tudi tukaj nam python izdatno pomaga, saj nam ponuja funkcijo sort:

>>> tabelaBesedBrezPodvojitev.sort()
>>> tabelaBesedBrezPodvojitev
['marko', 'po', 'skače', 'trati', 'zeleni']

Združimo vse delčke v funkcijo VseBesede:

Izvedi Počisti