Naučte se datovou strukturu sady Python/Frozenset – část 4
V této Části 4 série Python Data Structure budeme diskutovat o tom, co je sada, jak se liší od jiné datové struktury v pythonu, jak vytvářet objekty sady, mazat objekty sady a metody objektů sady. .
- Objekt sady je neuspořádaná sbírka různých hašovatelných objektů.
- Sada automaticky odstraní duplicitní položky z objektu.
- Vzhledem k tomu, že objekty sady nejsou seřazeny, není podporována žádná operace indexování a dělení.
V současné době existují dva typy vestavěných sad.
- množina – Vzhledem k tomu, že je proměnná, nemá žádnou hodnotu hash a nelze ji použít ani jako klíč slovníku, ani jako prvek jiné sady.
- frozenset – Immutable and hashable – jeho obsah nelze po vytvoření měnit; lze jej tedy použít jako klíč slovníku nebo jako prvek jiné sady.
Sestavit objekt sady
Vytvořte sadu pomocí konstruktorové metody “set()” nebo pomocí složených závorek s čárkou oddělující prvky “{a,b,c}”.
POZNÁMKA: Objekt sady nelze vytvořit pomocí prázdných složených závorek, protože vytvoří objekt slovníku.
Nastavit metody
Použijte vestavěnou funkci “dir()” k zobrazení seznamu dostupných metod a atributů sady.
Přidat prvky k objektu sady
Jak již bylo řečeno, set je proměnlivý typ. Jakmile je vytvořený objekt sady, můžete jej přidávat, odstraňovat a aktualizovat.
Promluvme si o metodě dvou sad add a update.
- metoda add(elem) – Tato metoda přidá jeden prvek k objektu sady.
- Metoda update(*others) – Tato metoda přidává do nastaveného objektu více prvků. Proměnlivé/neměnné objekty můžete předat jako argument v metodě aktualizace.
POZNÁMKA: Duplikáty budou automaticky odstraněny.
Odebrat/Vymazat prvky z nastaveného objektu
Jak jste viděli dříve v jiném tématu datové struktury (seznam, n-tice, slovník), pro set můžete také použít vestavěné klíčové slovo “del“ k odstranění objektu sady z jmenného prostoru (tj. Paměť).
Níže jsou uvedeny metody pro nastavení objektů k odstranění prvků.
- clear() – Vymaže všechny prvky, čímž je sada prázdná. Tato metoda clear() je dostupná v jiných datových strukturách poskytujících stejnou funkcionalitu.
- pop() – Odstraní libovolné prvky.
- discard(elem) – Pokud položka není nalezena v nastaveném objektu, pak metoda “discard()” nevyvolá žádnou chybu.
- remove(elem) – Stejné jako metoda “discard()”, ale vyvolá KeyError, když nebude položka nalezena.
Nastavení operací
Sada poskytuje metody pro provádění matematických operací, jako je průnik, sjednocení, rozdíl a symetrický rozdíl. Pamatujete si „Vennův diagram“ z vašich středoškolských let?
Podíváme se na níže uvedené metody, jak se provádějí matematické operace.
- svaz
- průsečík
- křižovatka_aktualizace
- symetrický_rozdíl
- symmetric_difference_update
- rozdíl
- rozdíl_aktualizace
- je disjunktní
- je podmnožina
- Issuperset
Union, Intersectio, Difference, Symmetric_Difference
- union(*other) – vrátí novou sadu s prvky ze sady a všech ostatních.
- intersection(*other) – Vrátí novou sadu s prvky společnými pro množinu a všechny ostatní.
- difference(*others) – vrátí novou sadu s prvky v sadě, které nejsou v ostatních.
- symmetric_difference(other) – Vrátí novou sadu s prvky buď v sadě, nebo v jiné, ale ne v obou.
Intersection_Update
intersection_update(*others) – Aktualizujte sadu a ponechte pouze prvky v ní nalezené a všechny ostatní.
Aktualizace rozdílu
difference_update(*others) – Aktualizujte sada, zachovejte pouze prvky nalezené v ní a všech ostatních.
Symmetric_Difference_Update
symmetric_difference_update(other) – Aktualizujte sadu a zachovejte pouze prvky nalezené v které které sadě, ale ne v obou.
Isdisjoint, Issubset, Issuperset
- isdisjoint(other) – Vrátí True , pokud sada nemá žádné společné prvky s ostatním. Množiny jsou nespojené když a jen když jejich průsečík je prázdná množina.
- issubset() – Otestujte, zda každý prvek v sadě je v jiném.
- issuperset() – Otestujte, zda každý prvek v druhém je v sadě.
Metoda Copy().
Pomocí metody copy() můžete vytvořit identickou kopii existujícího objektu sady. Tato metoda je dostupná i pro jiné typy datových struktur, jako je seznam, slovník atd…
Odstraňte nastavený objekt ze jmenného prostoru pomocí vestavěného klíčového slova “del”.
Zmrazená sada
- Zmrazená sada je neměnného typu. Po vytvoření již nemůžete přidávat, odebírat ani aktualizovat prvky ze seznamu.
- Zmrazená množina, která je neměnná, je hašovatelná a lze ji použít jako “klíč“ pro slovníky nebo prvky pro jiný objekt množiny.
- Frozen set je konstruován pomocí funkce “frozenset()”.
- Frozen set poskytuje stejnou sadu metod ve srovnání s „set“ jako union(), intersection, copy(), isdisjoint() atd.
souhrn
V tomto článku jste viděli, co je nastaveno, rozdíl mezi sadou a zmrazenou sadou, jak vytvořit a přistupovat k prvkům sady, nastavit metody atd…