Sužinokite Python Set/Frozenset duomenų struktūrą – 4 dalis


Šioje Python Data Structure serijos 4 dalyje aptarsime, kas yra rinkinys, kuo jis skiriasi nuo kitos python duomenų struktūros, kaip sukurti rinkinio objektus, ištrinti rinkinio objektus ir rinkinių objektų metodus. .

  • Nustatytas objektas yra netvarkinga skirtingų objektų, kuriems galima pritaikyti maišą, rinkinys.
  • Nustatyti automatiškai pašalina pasikartojančius elementus iš objekto.
  • Kadangi nustatyti objektai yra netvarkingi, jokia indeksavimo ir pjaustymo operacija nepalaikoma.

Šiuo metu yra du įmontuotų rinkinių tipai.

  1. rinkinys – kadangi jis yra kintamas, jis neturi maišos reikšmės ir negali būti naudojamas nei kaip žodyno raktas, nei kaip kito rinkinio elementas.
  2. užšaldytas nustatymas – nekintamas ir maišomas – sukūrus jo turinio keisti negalima; todėl jis gali būti naudojamas kaip žodyno raktas arba kaip kito rinkinio elementas.

Sukurkite objekto rinkinį

Sukurkite rinkinį naudodami konstruktoriaus metodą „set()“ arba naudodami riestinius skliaustus su kableliais, atskirdami elementus „{a,b,c}“.

PASTABA: negalite sukurti nustatyto objekto per tuščius skliaustus, nes bus sukurtas žodyno objektas.

Nustatyti metodus

Norėdami išvardyti galimus nustatymo metodus ir atributus, naudokite įtaisytąją funkciją "dir()".

Pridėkite elementų prie objekto nustatymo

Kaip jau minėta, rinkinys yra keičiamo tipo. Sukūrę nustatytą objektą galite pridėti, ištrinti, atnaujinti.

Pakalbėkime apie du metodus pridėti ir atnaujinti.

  • Pridėti (element) metodas – šis metodas prideda vieną elementą prie nustatyto objekto.
  • Atnaujinimo (*kitų) metodas – šis metodas prideda kelis elementus prie nustatyto objekto. Galite perduoti kintamus/nekintamus objektus kaip argumentą atnaujinimo metodu.

PASTABA: dublikatai bus automatiškai pašalinti.

Pašalinkite/išvalykite elementus iš nustatyto objekto

Kaip matėte anksčiau kitoje duomenų struktūros temoje (sąrašas, eilutės, žodynas), rinkinyje taip pat galite naudoti įtaisytąjį raktinį žodį „del“, kad ištrintumėte nustatytą objektą iš vardų erdvės (t. y. Atmintis).

Toliau pateikiami objektų nustatymo metodai elementams pašalinti.

  • clear() – išvalys visus elementus, todėl rinkinys tuščias. Šis metodas clear() pasiekiamas kitose duomenų struktūrose, teikiančiose tas pačias funkcijas.
  • pop() – pašalinami savavališki elementai.
  • išmesti(elem) – jei elementas nerastas nustatytame objekte, metodas „atmesti()“ nesukels jokios klaidos.
  • pašalinti(elem) – toks pat kaip metodas "išmesti()", tačiau jis sukels KeyError, kai elementas nerastas.

Nustatyti operacijas

Nustatyti pateikiami metodai atlikti matematines operacijas, pvz., sankirtą, jungtį, skirtumą ir simetrinį skirtumą. Prisimenate „Ven diagramą“ iš savo aukštųjų mokyklų laikų?

Toliau apžvelgsime matematinių operacijų atlikimo metodus.

  • sąjunga
  • sankryža
  • sankirtos_atnaujinimas
  • simetriškas_skirtumas
  • simetriškas_skirtumo_atnaujinimas
  • skirtumas
  • skirtumas_atnaujinimas
  • yra nesujungtas
  • yra pogrupis
  • issuperset

Sąjunga, Intersectio, Skirtumas, Simetrinis_skirtumas

  • sąjunga(*kita) – grąžinkite naują rinkinį su elementais iš rinkinio ir visų kitų.
  • sankirta(*kita) – grąžinkite naują rinkinį su elementais, bendrais rinkiniui ir visiems kitiems.
  • skirtumas (*kiti) – grąžinkite naują rinkinį su elementais, kurių nėra kituose.
  • simetrinis_skirtumas(kitas) – grąžinkite naują rinkinį su elementais arba rinkinyje, arba kitame, bet ne abiejuose.

Intersection_Update

intersection_update(*others) – atnaujinkite rinkinį, palikdami tik jame ir visus kitus rastus elementus.

Skirtumų atnaujinimas

difference_update(*others) – atnaujinkite rinkinį, išsaugodami tik jame rastus elementus ir visus kitus.

Simetrinis_skirtumas_atnaujinimas

simetrinis_skirtumo_naujinimas(kitas) – atnaujinkite rinkinį, išlaikydami tik elementus, rastus bet kuriame rinkinyje, bet ne abiejuose.

Isdisjoint, Issubset, Issuperset

  • isdisjoint(other) – Grąžinti True jei rinkinys nėra bendrų elementų su kitais. Aibės yra nesusijusios jei ir tik jei jų sankirta yra tuščia.
  • issubset() – Patikrinkite, ar kiekvienas rinkinio elementas yra kitame.
  • issuperset() – Patikrinkite, ar kiekvienas elementas kitame yra rinkinyje.

Kopijavimo() metodas

Galite sukurti identišką esamo rinkinio objekto kopiją naudodami copy() metodą. Šis metodas taip pat prieinamas kitiems duomenų struktūrų tipams, tokiems kaip sąrašas, žodynas ir kt.

Ištrinkite nustatytą objektą iš vardų erdvės naudodami integruotą raktinį žodį „del“.

Užšaldytas rinkinys

  • Užšaldytas rinkinys yra nekintamo tipo. Sukūrę sąrašo negalite pridėti, pašalinti ar atnaujinti elementų.
  • Fiksuotas rinkinys, kuris yra nekintamas, yra maišomas, gali būti naudojamas kaip „raktas“ žodynams arba kito objekto elementams.
  • Užšaldytas rinkinys sudaromas naudojant funkciją "frozenset()".
  • Užšaldytas rinkinys pateikia tą patį metodų rinkinį, palyginti su „rinkiniu“, pvz., union(), sankirta, kopija(), isdisjoint() ir kt.

Santrauka

Šiame straipsnyje matėte, kas yra nustatyta, skirtumas tarp rinkinio ir fiksuoto rinkinio, kaip sukurti ir pasiekti rinkinio elementus, nustatyti metodus ir kt.