Python sets
Op deze pagina:
- Element toevoegen aan een set
- Element verwijderen uit een set
- Het verschil tussen 2 sets bepalen
- Gemeenschappelijke elementen in 2 sets
- Sets samenvoegen
- Nagaan of een element voorkomt in een set
- Het aantal elementen van een set opvragen
- Een willekeurig element van een set ophalen
- Alle elementen van een set opvragen
- resultaat:
Sets zijn ongeordende verzamelingen zonder duplicaten. Sets kunnen niet worden gesorteerd met sort(). Je kunt ook geen indexen gebruiken in sets. Sets kunnen sneller doorzocht worden op het bestaan van een bepaald element dan lists.
Je kunt een set maken door de elementen op te geven tussen gekrulde haken:
mijnset = {4,6,8,2}
Je kunt ook een set maken van een reeds bestaande structuur via set:
mijnlist = [0,1,5,4,7,6,6]
mijnset = set(mijnlist)
{0, 1, 4, 5, 6, 7}
De elementen van een set moeten uniek zijn, vandaar dat in het bovenstaande voorbeeld de dubbele zes werd verwijderd bij het maken van de set.
Element toevoegen aan een set
Een element dat nog niet voorkomt in de set kun je toevoegen via add():
mijnset.add(9)
Het resultaat:
{0, 1, 4, 5, 6, 7, 9}
Element verwijderen uit een set
Een element verwijderen uit een set kan met remove().
mijnset.remove(5)
Het resultaat:
{0, 1, 4, 6, 7, 9}
Het verschil tussen 2 sets bepalen
Het verschil tussen 2 sets kan bepaald worden met difference().
set1 = {1,3,6,7}
set2 = {1,3,6,8,10}
print(set1.difference(set2))
Het resultaat is een nieuwe set met de elementen die wel in set1 voorkomen, maar niet in set2:
{7}
Andersom kan het ook:
set1 = {1,3,6,7}
set2 = {1,3,6,8,10}
print(set2.difference(set1))
Het reslutaat is een nieuwe set met de elementen die wel in set2 voorkomen, maar niet in set1:
{8, 10}
Gemeenschappelijke elementen in 2 sets
Welke elementen 2 sets gemeenschappelijk hebben kan worden bepaald met intersection():
print(set1.intersection(set2))
Het resultaat:
{1, 3, 6}
Sets samenvoegen
Sets samenvoegen kan met union().
set3 = set1.union(set2)
print(set3)
Het resultaat is een nieuwe set met alle elementen uit de 2 sets, zonder duplicaten:
{1, 3, 6, 7, 8, 10}
Nagaan of een element voorkomt in een set
set1 = {1,3,6,7}
print(3 in set1)
# resultaat:
True
Het aantal elementen van een set opvragen
set1 = {1,3,6,7}
print(len(set1))
# resultaat
4
Een willekeurig element van een set ophalen
Sets zijn ongeordende datastructuren. Je kunt geen elementen uit een set ophalen op basis van een index, die index is er niet.
Een manier om een willekeurig element van een set op te vragen is door de set eerst om te zetten naar een list sn dan de pop() functie te gebruiken:
mijnset = {1, 2, 3, 4, 5}
x = list(mijnset).pop()
print(x)
Deze methode maakt een nieuwwe lijst, wat kostbaar kan zijn als de set erg groot is. Een alternatief is om een iterator object te maken en het eerste element op te vragen met de next() functie:
mijnset = {1, 2, 3, 4, 5}
x = next(iter(mijnset))
print(x)
Alle elementen van een set opvragen
Het opvragen van alle elementen van een set kan met een 'for loop':
mijnset = {1, 2, 3, 4, 5}
for x in mijnset:
print(x)
Een andere methode is om een iterator object te maken en alle elementen op te vragen met de next() functie. De next() functie geeft een StopIteration fout als er geen elementen meer zijn:
mijnset = {1, 2, 3, 4, 5}
it = iter(mijnset)
while True:
try:
x = next(it)
except StopIteration:
break
else:
print(x, end=' ')
# resultaat:
1 2 3 4 5
Je kunt ook een default waarde meegeven aan de next() functie. Als er geen elementen meer zijn, dan geeft de next() functie geen StopIteration fout, maar deze default waarde.
pythonmijnset = {1, 2, 3, 4, 5}it = iter(mijnset)while True: x = next(it, None) if not x: break print(x, end=' ')
resultaat:
1 2 3 4 5
Verwante artikelen