Een set is een ongeordende collectie van elementen. Je kunt geen
specifieke elementen van een set benaderen via een index of een key. De
enige manier om elementen van een set te benaderen is via een for
loop, of door met de in
operator te testen of een element in de set
bestaat.
Je moet bij sets denken aan wiskundige verzamelingen. In de wiskunde is
een verzameling een collectie van elementen die alle uniek zijn, en
ieder element zit ofwel in de verzameling, ofwel niet in de verzameling.
Er zijn bepaalde operatoren die toestaan verzamelingen te combineren. Ik
gebruik vanaf dit punt het woord “set” in plaats van “verzameling,”
omdat set
een data type is.
Python gebruikt dictionaries om sets te implementeren; specifiek implementeert het de elementen van een set als keys van een dictionary. Dat betekent dat alleen onveranderbare data types in een set kunnen worden opgeslagen. Sets zelf zijn echter wel veranderbaar.
Omdat Python dictionaries gebruikt om sets te implementeren, denk je
misschien dat je een lege set kunt creëren door {}
toe te kennen aan
een variabele. Dat creëert echter een lege dictionary, en niet een lege
set. In plaats daarvan creëer je een lege set door de retourwaarde van
de functie set()
(zonder argumenten) toe te kennen aan een variabele.
Om een set te creëren waarin al een paar elementen zitten, kun je wel
die elementen tussen accolades toekennen aan een variabele. Als
alternatief kun je de set()
functie aanroepen met een list met de
elementen als argument.
fruitset = { "appel", "banaan", "kers" }
print( fruitset )
Als je een set wilt creëren bestaande uit de verschillende letters van
een string, dan kun je set()
aanroepen met de string als argument
(dubbele letters worden automatisch genegeerd).
helloset = set( "hello world" )
print( helloset )
Je kunt een for
loop gebruiken om een set te doorlopen. De variabele
van de for
loop krijgt toegang tot alle element van de set. Er is geen
manier om te bepalen in welke volgorde je de elementen te zien krijgt.
Je kunt ze niet sorteren zolang ze in de set zitten. Je kunt echter wel
met een list casting de set omzetten in een list, en die list dan
sorteren.
fruitset = { "appel", "banaan", "kers", "doerian", "mango" }
for element in fruitset:
print( element )
print()
fruitlist = list( fruitset )
fruitlist.sort()
for element in fruitlist:
print( element )
Met behulp van de len()
functie kun je het aantal elementen in de set
vaststellen.