Weboldal keresés

Ismerje meg a Python Set/Frozenset adatstruktúrát – 4. rész


A Python Data Structure sorozat ebben a 4. részében megvitatjuk, mi az a halmaz, miben különbözik a python más adatstruktúráitól, hogyan hozhatunk létre halmazobjektumokat, hogyan törölhetünk halmazobjektumokat és hogyan lehet a halmazobjektumok módszereit. .

  • A beállított objektum különálló kivonatoló objektumok rendezetlen gyűjteménye.
  • A Beállítás automatikusan eltávolítja az ismétlődő elemeket az objektumról.
  • Mivel a beállított objektumok rendezetlenek, nem támogatott az indexelés és a szeletelés.

Jelenleg két beépített készlettípus létezik.

  1. készlet – Mivel változtatható, nincs hash értéke, és nem használható sem szótári kulcsként, sem másik halmaz elemeként.
  2. fagyasztott – Megváltozhatatlan és kivonatozható – a tartalma létrehozása után nem módosítható; ezért szótárkulcsként vagy egy másik halmaz elemeként is használható.

Objektumkészlet létrehozása

Hozzon létre egy halmazt a „set()” konstruktor metódusával vagy kapcsos kapcsos zárójelekkel, amelyek vesszővel választják el az „{a,b,c}” elemeket.

MEGJEGYZÉS: nem hozhat létre beállított objektumot üres kapcsos zárójelekkel, mivel az szótárobjektumot hoz létre.

Módszerek beállítása

Használja a beépített "dir()" függvényt az elérhető metódusok és attribútumok felsorolásához.

Adjon hozzá elemeket az objektumkészlethez

Mint már említettük, a set egy változó típus. A beállított objektum létrehozása után hozzáadható, törölhető, frissíthető.

Beszéljünk két beállított módszerről: hozzáadás és frissítés.

  • add(elem) metódus – Ez a metódus egyetlen elemet ad hozzá egy beállított objektumhoz.
  • update(*others) metódus – Ez a módszer több elemet ad egy beállított objektumhoz. A módosítható/megváltoztathatatlan objektumokat argumentumként adhatja át a frissítési metódusban.

MEGJEGYZÉS: A másolatok automatikusan eltávolításra kerülnek.

Elemek eltávolítása/törlése egy beállított objektumból

Amint azt korábban más adatszerkezeti témakörökben (lista, sorok, szótár) láthatta, a set esetében is használhatja a beépített "del" kulcsszót, hogy törölje a beállított objektumot a névtérből (pl. Memóriat).

Az alábbiakban bemutatjuk az objektumok beállításának módszereit az elemek eltávolítására.

  • clear() – Törli az összes elemet, amely üressé teszi a készletet. Ez a clear() módszer más adatstruktúrákban is elérhető, amelyek ugyanazt a funkciót biztosítják.
  • pop() – Tetszőleges elemek eltávolítása.
  • discard(elem) – Ha az elem nem található a beállított objektumban, akkor a „discard()” metódus nem okoz hibát.
  • remove(elem) – Ugyanaz, mint a „discard()” metódus, de a KeyError-t emeli ki, ha egy elem nem található.

Műveletek beállítása

A Set módszereket biztosít matematikai műveletek, például metszéspont, egyesülés, különbség és szimmetrikus különbség végrehajtásához. Emlékszel a „Venn-diagramra” középiskolai éveidből?

Az alábbiakban megvizsgáljuk a matematikai műveletek végrehajtásának módszereit.

  • unió
  • útkereszteződés
  • intersection_update
  • szimmetrikus_különbség
  • szimmetrikus_különbség_frissítés
  • különbség
  • differencia_frissítés
  • diszjunkt
  • részhalmaza
  • issuperset

Unió, metszéspont, különbség, szimmetrikus_különbség

  • union(*other) – Új készlet visszaadása a készlet elemeivel és az összes többi elemmel.
  • metszéspont(*egyéb) – Új halmaz visszaadása a halmazban és az összes többiben közös elemekkel.
  • különbség(*egyéb) – Egy új halmaz visszaadása olyan elemekkel a halmazban, amelyek nem szerepelnek a többiben.
  • symmetric_difference(other) – Új halmazt ad vissza, amelynek elemei vagy a halmazban, vagy a többiben, de mindkettőben nem.

Intersection_Update

intersection_update(*others) – Frissítse a készletet úgy, hogy csak a benne található elemeket és az összes többi elemet tartsa meg.

Különbség frissítése

difference_update(*others) – Frissítse a készletet, és csak a benne található elemeket és az összes többit megtartja.

Symmetric_Difference_Update

symmetric_difference_update(other) – Frissítse a készletet, és csak az egyik készletben található elemeket tartsa meg, de nem mindkettőben.

Isdisjoint, Issubset, Issuperset

  • isdisjoint(other) – Igaz értéket ad vissza, ha a készletnek nincs egyéb közös eleme. A halmazok akkor és csak akkor diszjunktak, ha metszéspontjuk az üres halmaz.
  • issubset() – – Tesztelje, hogy a készlet minden eleme van-e másikban.
  • issuperset() – – – Tesztelje, hogy a másik minden eleme benne van-e a készletben.

Copy() módszer

A copy() metódus használatával létrehozhat egy azonos másolatot a meglévő halmazobjektumról. Ez a módszer más adatszerkezet-típusokhoz is elérhető, például lista, szótár stb.

Törölje a beállított objektumot a névtérből egy beépített „del” kulcsszó használatával.

Fagyasztott készlet

  • A fagyasztott készlet változatlan típusú. A felépítés után nem vehet fel, nem távolíthat el vagy frissíthet elemeket a listából.
  • A változtathatatlan rögzített halmazok kivonatolhatók, használhatók „kulcsként” a szótárak vagy egy másik halmazobjektum elemei számára.
  • A Frozen set a “frozenset()” függvény segítségével készül.
  • A befagyasztott halmaz ugyanazt a metóduskészletet kínálja a „készlethez” képest, mint az union(), metszéspont, copy(), isdisjoint() stb.

Összegzés

Ebben a cikkben láthatta, hogy mi van beállítva, különbség a halmaz és a rögzített halmaz között, hogyan lehet létrehozni és elérni a halmazelemeket, a beállítási módszereket stb.