Python Data Type - Sets
- Sets maken
- Update Set
- Elementen uit een set verwijderen
- Bewerkingen instellen
- Python Set Methoden
- Andere ingestelde bewerkingen
- Ingebouwde functies instellen
- Python Frozenset

In deze sectie leert u hoe u sets in Python maakt en hoe u elementen uit sets kunt toevoegen en verwijderen.
Set bevat unieke items en is een ongeordende lijst met elementen.
info
set
is een veranderlijk object, zodat u items uit een set kunt toevoegen en verwijderen.
Sets maken
Een set in Python kan worden gemaakt met accolades {}
en de items worden gescheiden door komma’s. Je kan ook een set maken met de ingebouwde methode set()
.
De elementen van een set kunnen van verschillende gegevenstypen zijn. De elementen van een set moeten onveranderlijk zijn. Je kan bijvoorbeeld een tuple als element van de set hebben, maar je kan geen set of woordenboek of lijst als elementen van de set hebben.
>>> x = {3, 5, 7, 2, 4, 5}
>>> print(x) #prints the set variable
{2, 3, 4, 5, 7}
>>> print(type(x)) #checking type of x
<class 'set'>
Je kan de set()
methode met lege parameters gebruiken om een lege lijst te maken. Als u schrijft {}
om een leeg object te maken, wordt dit geïnterpreteerd als een woordenboek:
>>> x = {}
>>> print(type(x))
<class 'dict'>
>>> x = set()
>>> print(type(x))
<class 'set'>
Update Set
Indexeren en segmenteren kan niet worden gebruikt om elementen van een set te wijzigen, omdat het set
geen geordend gegevenstype is.
Een enkel element kan met behulp van de add()
methode in een set worden toegevoegd . Als u meer dan één element aan de set wilt toevoegen, moet u de update()
methode gebruiken.
>>> s = {2, 4}
>>> print(s)
{2, 4}
>>> s.add(6)
>>> print(s)
{2, 4, 6}
>>> s.update([2, 4, 6])
>>> print(s)
{2, 4, 6}
>>> s.update([5,6], {7, 8, 9})
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}
Elementen uit een set verwijderen
Om een element uit een set te verwijderen, kan je discard()
methode of remove()
methode gebruiken.
Het verschil tussen deze methoden is dat deze discard()
methode niets vraagt als het te verwijderen element niet in de set staat, terwijl remove()
een foutmelding wordt gegenereerd als het te verwijderen element niet wordt gevonden.
>>> s = {2, 4, 5, 6, 7, 8, 9}
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}
>>> s.discard(6)
>>> print(s)
{2, 4, 5, 7, 8, 9}
>>> s.remove(8)
>>> print(s)
{2, 4, 5, 7, 9}
>>> s.discard(6) #no error
>>> s.remove(8) #generated an error
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
s.remove(8)
KeyError: 8
Je kan ook gebruiken pop()
om een item uit een set te verwijderen. pop()
verwijdert en retourneert een willekeurig ingesteld element.
>>> s = set("Python")
>>> s
{'o', 'n', 'h', 'P', 'y', 't'}
>>> s.pop()
o
>>> s.pop()
n
>>> s
{'h', 'P', 'y', 't'}
>>> s.clear()
>>> print(s)
set()
Je kunt de clear()
methode set gebruiken om alle set-elementen te wissen.
>>> s = set("Python")
>>> s.clear()
>>> s
set()
Bewerkingen instellen
Je kan bewerkingen zoals uitvoeren union
, intersection
, difference
, en symmetric_difference
.
Stel dat u twee sets hebt x
en y
:
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 10, 11, 12}
Unie
De Unie van twee sets resulteert in een nieuwe set die alle elementen van beide sets bevat.
Voor het uitvoeren van de unie-bewerking kan je de |
operator of de union()
methode gebruiken.
>>> print(x | y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#using union() method on x
>>> x.union(y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#union on y
>>> y.union(x)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
kruising
De kruising van twee sets resulteert in een nieuwe set met de items die in beide sets gebruikelijk zijn.
Om een kruispuntbewerking uit te voeren, kan je de &
operator of de intersection()
methode gebruiken.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x & y)
{1, 2, 6}
#using intersection() method on x
>>> x.intersection(y)
{1, 2, 6}
#intersection on y
>>> y.intersection(x)
{1, 2, 6}
Verschil
Het verschil tussen twee sets resulteert in een nieuwe set die elementen van de eerste set bevat die niet aanwezig zijn in de tweede set.
Is bijvoorbeeld x - y
elementen van x
niet in y
. Evenzo y - x
zijn elementen van y
niet in x
.
Om het verschil uit te voeren, kan je de -
operator of de difference()
methode gebruiken.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x - y)
{3, 4, 5}
#using difference() method on x
>>> x.difference(y)
{3, 4, 5}
#diference on y
>>> y.difference(x)
{8, 9, 7}
Symmetrisch verschil
Het symmetrische verschil van twee sets resulteert in een nieuwe set die elementen bevat die niet in beide sets voorkomen.
Om symmetrisch verschil uit te voeren, kan je de ^
operator of de symmetric_difference()
methode gebruiken.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x ^ y)
{3, 4, 5, 7, 8, 9}
#using symmetric_difference() method on x
>>> x.symmetric_difference(y)
{3, 4, 5, 7, 8, 9}
#symmetric_diference on y
>>> y.symmetric_difference(x)
{3, 4, 5, 7, 8, 9}
Python Set Methoden
Hierna volgt de lijst met methoden die kunnen worden toegepast op sets in Python:
Methode | Beschrijving |
---|---|
add() |
voeg een element toe aan een set |
clear() |
wis de elementen van de set (wist de hele set) |
copy() |
retourneer de kopie van een set |
difference() |
retourneer een nieuwe set die elementen van de eerste set bevat die niet aanwezig zijn in de tweede set. |
difference_update() |
verwijder alle elementen van een andere set uit de huidige set |
discard() |
verwijder een specifiek element uit een set |
intersection() |
retourneer een nieuwe set met de items die in beide sets gebruikelijk zijn. |
intersection_update() |
update een set met het snijpunt van deze set met een andere set |
isdisjoint() |
retourneer a True wanneer twee sets resulteert in een nulkruising |
issubset() |
retourneer a True wanneer een andere set de huidige set heeft |
issuperset() |
retourneer a True wanneer de huidige set een andere set heeft |
pop() |
retourneer een element uit een set |
remove() |
verwijder een specifiek element uit een set. Als het element niet in de set voorkomt, wordt een fout gegenereerd. |
symmetric_difference() |
een nieuwe set retourneren die elementen bevat die niet in beide sets voorkomen. |
symmetric_difference_update() |
update een set met het symmetrische verschil van deze set met een andere set |
union() |
retourneer een nieuwe set met alle elementen van beide sets. |
update() |
update een set met de unie van deze set met een andere set |
Andere ingestelde bewerkingen
Stel lidmaatschapscontrole in
Het in
trefwoord test of een item lid is van de set of niet.
>>> s = set("Blue")
>>> print('o' in s)
False
>>> print('l' in s)
True
Doorloop een set
Je kunt een set doorlopen met behulp van een for
lus:
for i in set("Blue"):
print(i)
Resultaat:
B
l
u
e
Ingebouwde functies instellen
Hier volgen enkele van de ingebouwde functies die kunnen worden gebruikt met sets om verschillende taken uit te voeren:
functies | Beschrijving |
---|---|
all() |
keer terug True als alle elementen van de set zijn True . Het keert ook terug True wanneer de set leeg is. |
any() |
terug True wanneer een van de elementen van de set is True . Het keert terug False wanneer de set leeg is. |
enumerate() |
retourneer de index en de waarde van alle elementen van de set als een tupel. Het retourneert een enumerate object. |
len() |
retourneer het aantal items in een set of de lengte van de set. |
set() |
definieer een set. |
max() |
retourneer het maximale item in de set. |
min() |
retourneer het minimum item in de set. |
sorted() |
geeft een gesorteerde lijst met elementen van een set terug. |
sum() |
geeft de som terug van alle elementen van de set. |
Python Frozenset
Frozenset is een speciale set waarvan de elementen niet kunnen worden bijgewerkt wanneer ze eenmaal worden toegewezen. Frozensets zijn onveranderlijke sets.
Omdat sets veranderlijk zijn, kan je ze niet gebruiken als sleutel voor in woordenboek, maar bevroren sets zijn onveranderlijk. Daarom kan je bevroren sets gebruiken als woordenboeksleutels.
Met de methode kan een frozenset worden gemaakt frozenset()
.
Hier volgen enkele van de methoden die door frozenset worden ondersteund:
copy()
difference()
intersection()
isdisjoint()
issubset()
issuperset()
symmetric_difference()
union()
>>> x = frozenset([2,6,3,9])
>>> y = frozenset([6,1,2,4])
>>> x.difference(y)
frozenset({9, 3})
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn