Python Data Type - Sets

Jinku Hu 12 april 2022 20 december 2019
  1. Sets maken
  2. Update Set
  3. Elementen uit een set verwijderen
  4. Bewerkingen instellen
  5. Python Set Methoden
  6. Andere ingestelde bewerkingen
  7. Ingebouwde functies instellen
  8. Python Frozenset
Python Data Type - Sets

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})
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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