Projekt Pronal Projekt Pronal

Kazalo:
Sofinasiranje projekta
Starejši - zbirka nalog...
Tekmovanja...
Tekmovanja - dopolni...
Tekmovanja - Parsons...
Tekmovanja - popravi...
Starejši - učbenik
Funkcije
If stavek
Izpisi
Množice
Nizi
Pisanje in popravljanje programa
Seznami in nizi
Slovarji
Spoznajmo Python
Uvod v funkcije
Zanka for
Zanka while
Množice

Množice


Množice - kratka razlaga

Množica je neurejen nabor elementov. Vsak element je različen od drugih in mora biti nesprmenljiv (naprimer niz, število itd.). Množice so spremenljive in so podobne matematičnim množicam. Iz množic lahko elemente jemljemo ali jim jih dodajamo. Če večkrat dodamo v množico isti element bo v množici le ena pojavitev. Poznamo tudi operacije med množicami naprimer presek, razlika, unija itd. Po množici pa se kljub neurejenosti da premikati z zanko for. Več o množicah najdete tukaj.


Množice

1. podnaloga

Novo množico definiramo tako, da vzamemo elemente in jih napišemo znotraj zavitih oklepajev:{}. Če želimo ustvariti prazno množico le z oklepaji, znotraj katerih ne napišemo nobenega elementa{} nam bo to ustvarilo prazen slovar, zato moramo uporabiti set(). set() uporabljamo tudi za pretvorbo naprimer seznama v množice.

Sestavite funkcijo mnozica(el1, el2, el3), ki vrne množico elementov el1, el2 in el3. Predpostavite lahko, da so vsi elementi nespremenljivi. Na primer:

>>> mnozica(1, 1, 1)
{1}
>>> mnozica('', ' ', 'beseda')
{'', ' ', 'beseda'}

Uradna rešitev

def mnozica(el1, el2, el3):
    '''vrne monzico elementov'''
    return {el1, el2, el3}

2. podnaloga

Sestavite funkcijo mnozica2(sez), ki vrne množico elementov seznama sez. Predpostavite lahko, da so vsi elementi nespremenljivi. Na primer:

>>> mnozica2([1, 2, 3, 4, 1, 2])
{1, 2, 3, 4}
>>> mnozica2(['a', '1', 'hej', 5, '', ' '])
{'', 5, ' ', 'hej', '1', 'a'}

Uradna rešitev

def mnozica2(sez):
    '''vrne monzico elementov iz seznama sez'''
    return set(sez)

3. podnaloga

Napišite funkcijo spremeni(mn, el1, el2), ki vrne mnozico mn, kateri doda element el1 in odvzame element el2. Pomagajte si z metodo add() ali update() ter discard() ali remove() (remove() nam v primeru, da želimo odstraniti element, ki ga ni v množici javi napako, medtem ko discard() v tem primeru ne naredi nič). Na primer:

>>> spremeni({1, 2}, 4, 5)
{1, 2, 4}

Uradna rešitev

def spremeni(mn, el1, el2):
    '''Vrne množico mn, z dodanim elementom el1 in odvzetim elementom el2'''
    mn.add(el1)
    mn.discard(el2)
    return mn

4. podnaloga

Napišite funkcijo presek_unija(mn1, mn2, mn3), ki najprej izračuna presek množic mn1 in mn2, nato pa vrne unijo preseka in množice mn3. Pomagajte si z metodo intersection() ter union(). Na primer:

>>> presek_unija({1, 2}, {2, 3}, {2})
{2}

Uradna rešitev

def presek_unija(mn1, mn2, mn3):
    '''Vrne unijo mn3 ter preseka mn1 in mn2 '''
    return (mn1.intersection(mn2)).union(mn3)
Mesto objave ob koncu projekta 15.9.2018