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.
- 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.
- 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.