Õpi Pythoni komplekti/Frozenseti andmestruktuuri - 4. osa


Selles Pythoni andmestruktuuri seeria 4. osas arutleme, mis on komplekt, kuidas see erineb teistest Pythoni andmestruktuuridest, kuidas luua komplektobjekte, kustutada komplektobjekte ja määratud objektide meetodeid.

  • Hulgaline objekt on eraldatud räsitavate objektide korrastamata kogum
  • Set eemaldab objektilt automaatselt dubleerivad üksused.
  • Kuna määratud objektid on korrastamata, ei toetata indekseerimist ega viilutamist.

Praegu on kaks sisseehitatud komplektitüüpi.

  1. komplekt - kuna see on muutuv, pole sellel räsiväärtust ja seda ei saa kasutada ei sõnastiku võtmena ega teise komplekti elemendina.
  2. frozenset - muutumatu ja räsitav - selle sisu ei saa pärast selle loomist muuta; seetõttu saab seda kasutada sõnastiku võtmena või mõne muu komplekti elemendina.

Ehita määratud objekt

Looge komplekt konstruktori meetodil „set()” või lokkis traksidega, kus komadega eraldatakse elemendid „{a, b, c}”.

MÄRKUS. Tühjade traksidega ei saa seadistada määratud objekti, kuna see loob sõnastikuobjekti.

Määrake meetodid

Saadaolevate komplektimeetodite ja atribuutide loetlemiseks kasutage sisseehitatud funktsiooni “dir()”.

Objekti lisamiseks lisage elemendid

Nagu juba öeldud, on komplekt muutuv tüüp. Saate oma loodud objekti lisada, kustutada ja uuendada, kui see on loodud.

Räägime kahest komplektimeetodi lisamise ja värskendamise meetodist.

  • add (elem) meetod - see meetod lisab määratud objektile ühe elemendi.
  • update (* others) meetod - see meetod lisab määratud objektile mitu elementi. Värskendusmeetodi argumendina saate edastada muutuvaid/muutumatuid objekte.

MÄRKUS. Duplikaadid eemaldatakse automaatselt.

Elementide eemaldamine/tühjendamine määratud objektilt

Nagu olete varem mõnes muus andmestruktuuri teemas (sõnaraamatus) näinud, võite ka komplekti jaoks kasutada sisseehitatud märksõna „del”, et kustutada määratud objekt nimeruumist (st Mälu).

Allpool on meetodid elementide eemaldamiseks seatud objektidele.

  • selge() - kustutab kõik elemendid, mis muudavad komplekti tühjaks. See selge() meetod on saadaval teistes sama funktsionaalsusega andmestruktuurides.
  • pop() - eemaldab suvalised elemendid.
  • ära visata (elem) - kui üksust ei leitud määratud objektist, ei põhjusta meetod "visata()" viga.
  • eemalda (elem) - sama mis meetod "visata()", kuid see tõstab KeyError'i, kui üksust ei leita.

Määra toimingud

Komplekt pakub matemaatiliste toimingute sooritamise meetodeid, näiteks ristmik, liit, erinevus ja sümmeetriline erinevus. Kas mäletate oma keskkooli päevilt pärit Venni diagrammi?

Heidame pilgu allpool toodud meetoditele, kuidas matemaatilisi toiminguid sooritatakse.

  • liit
  • ristmik
  • ristmiku_uuendamine
  • sümmeetriline_ erinevus
  • sümmeetriline_vahe_uuendamine
  • erinevus
  • erinevus_uuendamise kuupäev
  • ei lahku
  • alamhulk
  • issuperset

  • liit (* muu) - tagastab uue hulga koos hulga ja kõigi teiste elementidega.
  • ristmik (* muu) - tagastab uue hulga koos hulga ja kõigi teiste ühiste elementidega.
  • erinevus (* teised) - tagastab uue komplekti koos komplektis olevate elementidega, mida teistes pole.
  • symmetric_difference (muu) - tagastab uue komplekti koos elementidega kas komplektis või muus, kuid mitte mõlemas.

intersection_update (* muud) - värskendage komplekti, hoides ainult selles leiduvaid elemente ja kõiki teisi.

erinevus_uuendamine (* teised) - värskendage komplekti, hoides alles ainult selles leiduvaid elemente ja kõiki teisi.

symmetric_difference_update (muu) - värskendage komplekti, hoides ainult kummaski komplektis leiduvaid elemente, kuid mitte mõlemat.

  • isdisjoint (muu) - tagastatakse väärtus True, kui komplektil pole ühiseid elemente teistega. Hulgad on lahutatud ja ainult siis, kui nende ristumiskoht on tühi hulk.
  • issubset() - testige, kas hulga kõik elemendid on teises.
  • issuperset() - testige, kas kõik teise elemendid on komplektis.

Olemasoleva komplekti objekti identse koopia saate luua meetodi copy() abil. See meetod on saadaval ka muude andmestruktuuride tüüpide jaoks, nagu loend, sõnastik jne.

Kustutage määratud objekt nimeruumist sisseehitatud märksõna „del” abil.

  • Külmutatud komplekt on muutumatu tüüp. Pärast koostamist ei saa te loendisse elemente lisada, eemaldada ega värskendada.
  • Külmutatud komplekt, mis on muutumatu, on räbustatav, seda saab kasutada "võtmena" sõnastike või muu komplekti objekti elementide jaoks.
  • Külmutatud komplekt koostatakse funktsiooni „frozenset()” abil.
  • Külmutatud komplekt pakub samu meetodeid kui „komplekt”, nagu liit(), ristmik, koopia(), isdisjoint() jne.

Selles artiklis olete näinud, mis on määratud, erinevus hulga ja külmutatud hulga vahel, kuidas luua ja juurde pääseda komplektielementidele, komplektimeetoditele jne.