set
)¶Množina je další typ pro ukládání sekvence dat.
Prvky množiny se zapisují do složených závorek { }
, nejsou nijak seřazené, nemají indexy, a jednotlivé prvky není možné měnit.
Každý prvek může být v množině jen jednou.
zelenina = {"rajce", "paprika", "okurka"}
Pokud definice množiny obsahuje jeden prvek vícekrát, duplicity jsou automaticky odstraněny:
zelenina = {"rajce", "paprika", "okurka", "paprika"}
zelenina
{'okurka', 'paprika', 'rajce'}
Prvky množiny mohou být různých typů:
mnozina = {"rajce", 10, 3.5, (5, "pet"), True}
mnozina
{(5, 'pet'), 10, 3.5, True, 'rajce'}
zelenina.add("mrkev")
zelenina
{'mrkev', 'okurka', 'paprika', 'rajce'}
Pomocí update
můžeme přidat více prvků najednou. Např. celou množinu:
korenova = {"mrkev", "petržel", "celer"}
zelenina.update(korenova)
zelenina
{'celer', 'mrkev', 'okurka', 'paprika', 'petržel', 'rajce'}
Nebo jinou sekvenci, třeba seznam:
listova = ["salát", "zelí"]
zelenina.update(listova)
zelenina
{'celer', 'mrkev', 'okurka', 'paprika', 'petržel', 'rajce', 'salát', 'zelí'}
.remove(p)
- skončí chybou, pokud prvek v množině není
.discard(p)
- pokud prvek v množině není, nic se nestane
.pop()
- vrátí a smaže poslední prvek (ale nevíme, který to je)
zelenina.remove("okurka")
zelenina
{'celer', 'mrkev', 'paprika', 'petržel', 'rajce', 'salát', 'zelí'}
zelenina.remove("okurka")
zelenina
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_26060/2353208042.py in <module> ----> 1 zelenina.remove("okurka") 2 zelenina KeyError: 'okurka'
zelenina.discard("okurka")
zelenina
{'celer', 'mrkev', 'paprika', 'petržel', 'rajce', 'salát', 'zelí'}
.clear()
- vyprázdní množinu
del zelenina
- smaže celou množinu
m1.union(m2)
nebo |
- sjednocení množin m1 a m2
m1.intersection(m2)
nebo &
- průnik
a další Množiny na w3schools
in
¶Operátor in
zjistí, jestli je prvek v množině.
zelenina = {"rajce", "paprika", "okurka", "paprika"}
print("kokos" in zelenina)
False
For cyklus prochází prvky množiny:
for prvek in mnozina:
print(prvek)
Vypsání množiny zelenina
:
for z in zelenina:
print(z)
rajce okurka paprika