Č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 |