Zoeken op website

Leer Python Set/Frozenset-gegevensstructuur – Deel 4


In dit deel 4 van de Python Data Structure-serie bespreken we wat een set is, hoe deze verschilt van andere datastructuren in Python, hoe je set-objecten maakt, set-objecten verwijdert en methoden voor set-objecten .

  • Een setobject is een ongeordende verzameling van verschillende hashbare objecten.
  • Set verwijdert automatisch dubbele items uit het object.
  • Omdat ingestelde objecten ongeordend zijn, wordt er geen indexerings- en segmenteringsbewerking ondersteund.

Er zijn momenteel twee typen inbouwsets.

  1. set – Omdat het veranderlijk is, heeft het geen hash-waarde en kan het niet worden gebruikt als woordenboeksleutel of als element van een andere set.
  2. frozenset – Onveranderlijk en hashbaar – de inhoud ervan kan niet worden gewijzigd nadat deze is gemaakt; het kan daarom worden gebruikt als woordenboeksleutel of als een element van een andere set.

Construeer een ingesteld object

Maak een set met behulp van de constructormethode “set()” of gebruik accolades met een komma die de elementen “{a,b,c}” scheidt.

OPMERKING: je kunt geen set-object construeren via lege accolades, omdat er dan een woordenboek-object ontstaat.

Methoden instellen

Gebruik de ingebouwde functie “dir()” om de beschikbare setmethoden en attributen weer te geven.

Elementen toevoegen om object in te stellen

Zoals reeds vermeld, is set een veranderlijk type. U kunt uw ingestelde object toevoegen, verwijderen en bijwerken zodra het is gemaakt.

Laten we het hebben over de twee vaste methoden add en update.

  • add(elem) method – Deze methode voegt een enkel element toe aan een set-object.
  • update(*others) method – Deze methode voegt meerdere elementen toe aan een set-object. U kunt veranderlijke/onveranderlijke objecten als argument doorgeven in de updatemethode.

OPMERKING: duplicaten worden automatisch verwijderd.

Elementen uit een ingesteld object verwijderen/wissen

Zoals je eerder hebt gezien in andere datastructuuronderwerpen (lijst, tupels, woordenboek), kun je voor set ook het ingebouwde trefwoord “del” gebruiken om het set-object uit de naamruimte te verwijderen (d.w.z. Geheugen).

Hieronder vindt u de methoden waarmee u objecten kunt instellen om elementen te verwijderen.

  • clear() – Wist alle elementen waardoor de set leeg wordt. Deze clear() methode is beschikbaar in andere datastructuren die dezelfde functionaliteit bieden.
  • pop() – Verwijdert willekeurige elementen.
  • discard(elem) – Als het item niet wordt gevonden in het set-object, zal de methode “discard()” geen enkele fout opleveren.
  • remove(elem) – Hetzelfde als de methode “discard()”, maar deze genereert KeyError wanneer een item niet wordt gevonden.

Bewerkingen instellen

Set biedt methoden om wiskundige bewerkingen uit te voeren, zoals snijpunt, vereniging, verschil en symmetrisch verschil. Kent u het “Venn-diagram” nog uit uw middelbare schooltijd?

We zullen de onderstaande methoden bekijken over hoe wiskundige bewerkingen worden uitgevoerd.

  • unie
  • kruispunt
  • kruising_update
  • symmetrisch_verschil
  • symmetrische_verschil_update
  • verschil
  • verschil_update
  • is onsamenhangend
  • issubset
  • issuperset

Unie, Intersectie, Verschil, Symmetrisch verschil

  • union(*other) – Retourneer een nieuwe set met elementen uit de set en alle andere.
  • intersection(*other) – Geeft een nieuwe set terug met elementen die gemeenschappelijk zijn voor de set en alle andere.
  • difference(*others) – Retourneer een nieuwe set met elementen in de set die niet in de andere voorkomen.
  • symmetrische_difference(other) – Retourneert een nieuwe set met elementen in de set of een andere, maar niet beide.

Kruispunt_Update

intersection_update(*others) – Werk de set bij, waarbij alleen de daarin gevonden elementen en alle andere behouden blijven.

Verschil-update

difference_update(*others) – Update de set, waarbij alleen de daarin gevonden elementen en alle andere behouden blijven.

Symmetrische_Verschil_Update

symmetrische_difference_update(other) – Update de set, waarbij alleen de elementen behouden die in een van beide sets voorkomen, maar niet in beide.

Isdisjoint, Issubset, Issuperset

  • isdisjoint(other) – Retourneert True als de set geen elementen gemeen heeft met other. Sets zijn onsamenhangend als en slechts als hun snijpunt de lege verzameling is.
  • issubset() – Test of elk element in de set zich in een ander element bevindt.
  • issuperset() – Test of elk element in het andere element in de set zit.

Kopieer() methode

U kunt een identieke kopie van een bestaand set-object maken met de copy()-methode. Deze methode is ook beschikbaar voor andere typen gegevensstructuren, zoals lijsten, woordenboeken enz.

Verwijder het set-object uit de naamruimte met behulp van een ingebouwd trefwoord “del”.

Bevroren setje

  • Bevroren set is van het onveranderlijke type. Eenmaal gebouwd, kunt u geen elementen uit de lijst toevoegen, verwijderen of bijwerken.
  • Omdat bevroren sets onveranderlijk zijn, zijn ze hashbaar en kunnen ze worden gebruikt als “sleutel” voor woordenboeken of elementen voor een ander setobject.
  • Een bevroren set wordt gemaakt met de functie “frozenset()”.
  • Frozen set biedt dezelfde set methoden in vergelijking met “set” zoals union(), intersection, copy(), isdisjoint() etc.

Samenvatting

In dit artikel heb je gezien wat er is ingesteld, het verschil tussen de set en de bevroren set, hoe je de set-elementen kunt maken en openen, set-methoden enz.