Če želimo presek množic a in b ponovno shraniti v množico a, moramo uporabiti stavek a = a.intersection(b) ali pa a.intersection_update(b). Pri uniji uporabimo stavek a = a.union(b) ali a.update(b), pri razliki pa stavek a = a.difference(b) ali a.difference_update(b):
Sta stavka a = a.intersection(b) in a.intersection_update(b) enakovredna? Skoraj! V večini primerov se resda obnašata enako (le da je drugi nekoliko učinkovitejši), obstajajo pa primeri, ko se ne. Radovedneži si lahko razliko ogledate tukaj.
Katere elemente vsebuje množica m po izvedbi sledečih stavkov? Nalogo najprej reši na papir, nato pa rešitev preveri v pythonovem tolmaču.
m = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
m.intersection_update({6, 7, 8, 9, 10, 11, 12})
m.difference_update({7, 8, 13, 14})
m.update({2, 3, 4, 9, 10})
S pomočjo doslej navedenih funkcij in operatorjev napiši (in preizkusi) funkcijo JePodmnozica(a, b), ki vrne True, če je množica a podmnožica množice b, sicer pa vrne False.
Ker položaj elementov pri množicah ni definiran, do posameznih elementov ne moremo dostopati enako kot pri tabelah (torej kot množica[indeks]). Lahko pa se po elementih množice sprehodimo:
for element in množica: # obdelaj element
Napiši in preizkusi funkcijo Dvakratniki(mnozica), ki sprejme množico števil in vrne novo množico, ki vsebuje dvakratnike podane množice. Na primer klic Dvakratniki(2, 3, 5, 7) naj vrne množico 4, 6, 10, 14.
Za delo z množicami uporabljaš funkcije intersection, union itd. Poleg funkcij oziroma namesto funkcij pa lahko uporabljaš tudi naslednje operatorje:
| Funkcija | Operator | Funkcija | Operator |
|---|---|---|---|
| a.intersection(b) | a & b | a.intersection_update(b) | a &= b |
| a.union(b) | a | b | a.update(b) | a |= b |
| a.difference(b) | a - b | a.difference_update(b) | a -= b |