Naučite se Python Set/Frozenset Data Structure - 4. del


V tem 4. delu serije Python Data Structure bomo razpravljali o tem, kaj je nabor, kako se razlikuje od druge podatkovne strukture v pythonu, kako ustvariti nastavljene predmete, izbrisati nastavljene predmete in metode nastavljenih predmetov.

  • Nastavljeni objekt je neurejena zbirka različnih hashable predmetov.
  • Set samodejno odstrani podvojene predmete iz predmeta.
  • Ker so nastavljeni objekti neurejeni, ni podprto nobeno indeksiranje in rezanje.

Trenutno sta vgrajeni dve vrsti kompleta.

  1. set - ker je spremenljiv, nima zgoščene vrednosti in ga ni mogoče uporabiti niti kot slovarski ključ niti kot element drugega nabora.
  2. zamrznjen set - nespremenljiv in razpršen - njegove vsebine po ustvarjanju ni mogoče spremeniti; zato ga je mogoče uporabiti kot slovarski ključ ali kot element drugega nabora.

Konstruiraj nastavljeni objekt

Ustvarite nabor z uporabo konstruktorske metode “set()” ali z uporabo kodrastih oklepajev z vejico, ki ločujejo elemente “{a, b, c}”.

OPOMBA: nastavljenega predmeta ni mogoče zgraditi skozi prazne oklepaje, saj bo ustvaril slovarski objekt.

Nastavite metode

Uporabite vgrajeno funkcijo "dir()", da naštete razpoložljive nastavljene metode in atribute.

Dodajanje elementov za nastavitev predmeta

Kot že rečeno, je komplet spremenljiv. Po ustvarjanju lahko nastavljeni predmet dodajate, brišete in posodabljate.

Pogovorimo se o dveh nastavljenih metodah dodajanja in posodabljanja.

  • metoda add (elem) - ta metoda doda posameznemu elementu nastavljeni objekt.
  • metoda posodobitve (* drugi) - ta metoda doda več elementov nastavljenemu objektu. Spremenljive/nespremenljive predmete lahko kot argument v metodi posodabljanja posredujete.

OPOMBA: Dvojniki bodo samodejno odstranjeni.

Odstranjevanje/brisanje elementov iz nastavljenega predmeta

Kot ste že videli v drugi temi o strukturi podatkov (slovar), lahko tudi za set uporabite vgrajeno ključno besedo "del" za brisanje nastavljenega predmeta iz imenskega prostora (tj. Pomnilnika).

Spodaj so opisane metode za nastavitev predmetov za odstranjevanje elementov.

  • clear() - počisti vse elemente, zaradi katerih bo niz prazen. Ta metoda clear() je na voljo v drugih podatkovnih strukturah, ki zagotavljajo enako funkcionalnost.
  • pop() - Odstrani poljubne elemente.
  • zavrzi (elem) - če elementa ni mogoče najti v nastavljenem objektu, potem metoda »zavrzi()« ne bo povzročila nobene napake.
  • odstraniti (elem) - Enako kot metoda »zavrzi()«, vendar bo sprožila KeyError, če elementa ne najdete.

Nastavite operacije

Set ponuja metode za izvajanje matematičnih operacij, kot so presečišče, združevanje, razlika in simetrična razlika. Se spomnite "Vennovega diagrama" iz gimnazijskih dni?

Ogledali si bomo spodnje metode, kako se izvajajo matematične operacije.

  • zveza
  • križišče
  • posodobitev_križišča
  • simetrična_razlika
  • simetrična_razlika_posodobitev
  • razlika
  • posodobitev_razlike
  • isdisjoint
  • issubset
  • issueperset

  • union (* drugo) - vrnite nov niz z elementi iz niza in vseh ostalih.
  • križišče (* drugo) - vrnite nov niz z elementi, ki so skupni vsem in vsem ostalim.
  • razlika (* drugi) - vrnite nov niz z elementi v nizu, ki niso v drugih.
  • symmetric_difference (drugo) - vrne nov niz z elementi v nizu ali drugem, ne pa v obeh.

intersection_update (* drugi) - Posodobite nabor, obdržite samo elemente, ki jih najdete v njem in vse ostale.

razlika_update (* drugi) - Posodobite nabor, obdržite samo elemente, ki jih najdete v njem in vse ostale.

symmetric_difference_update (drugo) - posodobite nabor, pri čemer ohranite samo elemente, ki jih najdete v katerem koli naboru, ne pa v obeh.

  • isdisjoint (drugo) - vrne True, če nabor nima skupnih elementov z drugimi. Nabori so nepovezani, če in samo, če je njihovo presečišče prazen niz.
  • issubset() - preizkusite, ali je vsak element v nizu v drugem.
  • issueperset() - preizkusite, ali so vsi elementi drugega v naboru.

Identično kopijo obstoječega nastavljenega predmeta lahko ustvarite z metodo copy(). Ta metoda je na voljo tudi za druge tipe podatkovnih struktur, kot so seznam, slovar itd.

Z vgrajeno ključno besedo "del" izbrišite nastavljeni predmet iz imenskega prostora.

  • Zamrznjeni komplet je nespremenljiv. Ko so sestavljeni, ne morete dodajati, odstranjevati ali posodabljati elementov s seznama.
  • Zamrznjeni nabor, ki je nespremenljiv, je razpršljiv, lahko ga uporabite kot "ključ" za slovarje ali elemente za drug predmet nabora.
  • Zamrznjeni nabor je sestavljen s funkcijo “frozenset()”.
  • Zamrznjeni niz ponuja enak nabor metod v primerjavi z "nizom", kot so union(), presečišče, copy(), isdisjoint() itd.

V tem članku ste videli, kaj je nastavljeno, razlika med nizom in zamrznjenim nizom, kako ustvariti in dostopati do elementov nabora, metode nastavitev itd.