Jifunze Python Set/Frozenset Data Muundo - Sehemu ya 4


Katika Sehemu hii ya 4 ya safu ya Muundo wa Takwimu ya Python, tutakuwa tukijadili seti ni nini, jinsi inavyotofautiana na muundo mwingine wa data kwenye python, jinsi ya kuunda vitu vilivyowekwa, kufuta vitu vilivyowekwa na njia za vitu vilivyowekwa.

  • Kipengee kilichowekwa ni mkusanyo ambao haujapangwa wa vipengee tofauti vya hashable.
  • Set huondoa kiotomatiki nakala za vipengee kutoka kwa kitu.
  • Kwa kuwa vipengee vilivyowekwa havijapangwa, hakuna operesheni ya kuorodhesha na kukata inaauniwa.

Kwa sasa kuna aina mbili za seti zilizojengwa.

  1. seti - Kwa kuwa inaweza kubadilika, haina thamani ya heshi na haiwezi kutumika kama ufunguo wa kamusi au kama kipengele cha seti nyingine.
  2. seti iliyoganda - Haibadiliki na inayoweza hashable - yaliyomo yake hayawezi kubadilishwa baada ya kuundwa; inaweza, kwa hivyo, kutumika kama ufunguo wa kamusi au kama kipengele cha seti nyingine.

Tengeneza Kitu cha Kuweka

Unda seti kwa kutumia mbinu ya kijenzi set() au kwa kutumia viunga vilivyopinda na koma vinavyotenganisha vipengele {a,b,c}.

KUMBUKA: huwezi kuunda kitu kilichowekwa kupitia viunga tupu kwani kitaunda kipengee cha kamusi.

Weka Mbinu

Tumia kitendakazi cha ndani cha dir() ili kuorodhesha mbinu na sifa zinazopatikana.

Ongeza Vipengee ili Kuweka Kitu

Kama ilivyoelezwa tayari, seti ni aina inayoweza kubadilika. Unaweza kuongeza, kufuta, kusasisha kitu chako kilichowekwa mara tu kitakapoundwa.

Wacha tuzungumze juu ya njia mbili za kuongeza na kusasisha.

  • njia ya kuongeza(elem) - Mbinu hii inaongeza kipengele kimoja kwenye kitu kilichowekwa.
  • Njia ya
  • sasisha(*mengine) - Njia hii inaongeza vipengele vingi kwenye kitu kilichowekwa. Unaweza kupitisha vitu vinavyoweza kubadilika/vinavyoweza kubadilika kama hoja katika mbinu ya kusasisha.

KUMBUKA: Nakala zitaondolewa kiotomatiki.

Ondoa/Futa Vipengee Kutoka kwa Kitu Kilichowekwa

Kama ulivyoona hapo awali katika mada nyingine ya muundo wa data (kamusi), kwa seti pia unaweza kutumia neno kuu del lililojumuishwa ndani kufuta kipengee kilichowekwa kutoka kwa nafasi ya majina (yaani Kumbukumbu).

Chini ni mbinu za kuweka vitu ili kuondoa vipengele.

  • clear() - Itafuta vipengele vyote vinavyofanya seti iwe tupu. Mbinu hii clear() inapatikana katika miundo mingine ya data inayotoa utendakazi sawa.
  • pop() - Huondoa vipengele vya kiholela.
  • discard(elem) - Ikiwa kipengee hakipatikani kwenye kipengee kilichowekwa basi mbinu ya discard() haitaleta hitilafu yoyote.
  • remove(elem) - Sawa na mbinu ya discard() lakini itaongeza KeyError wakati kipengee hakipatikani.

Weka Uendeshaji

Set hutoa mbinu za kufanya shughuli za hisabati kama vile makutano, muungano, tofauti na tofauti linganifu. Je, unakumbuka mchoro wa Venn kutoka siku zako za shule ya upili?

Tutaangalia njia zifuatazo za jinsi shughuli za hisabati zinafanywa.

  • muungano
  • makutano
  • intersection_update
  • tofauti_linganifu
  • sasisho_la_tofauti_linganifu
  • tofauti
  • sasisho_tofauti
  • isiyoungana
  • imewekwa
  • seti kuu

  • union(*nyingine) - Rejesha seti mpya iliyo na vipengele kutoka kwa seti na vingine vyote.
  • intersection(*nyingine) - Rudisha seti mpya iliyo na vipengele vya kawaida kwenye seti na vingine vyote.
  • difference(*mengine) - Rejesha seti mpya iliyo na vipengee katika seti ambavyo havipo katika vingine.
  • symmetric_difference(nyingine) - Rejesha seti mpya iliyo na vipengele katika seti au nyingine lakini si zote mbili.

intersection_update (* wengine) - Sasisha seti, ukiweka vipengele vinavyopatikana ndani yake na wengine wote.

different_update(*nyingine) – Sasisha seti, hifadhi vipengee tu vinavyopatikana ndani na     nyingine zote

symmetric_difference_update(nyingine) – Sasisha vipengee vilivyowekwa,  vipekee vinavyopatikana katika seti zote, lakini si katika zote.

  • isdisjoint(nyingine) – Rejesha Kweli ikiwa   seti haina vipengee sawa na nyingine. Seti zimetengana ikiwa na pekee ikiwa  makutano yake ni seti tupu.
  • issubset() – Jaribio ikiwa kila kipengele katika seti kimo katika kingine.
  • issuperset() – Jaribio ikiwa kila kipengele katika kingine kimo seti .

Unaweza kuunda nakala inayofanana ya kitu kilichowekwa kwa kutumia njia ya copy(). Mbinu hii pia inapatikana kwa aina zingine za muundo wa data kama vile orodha, kamusi n.k...

Futa kitu kilichowekwa kutoka kwa nafasi ya jina kwa kutumia neno kuu la del lililojengwa ndani.

  • Seti iliyogandishwa ni aina isiyobadilika. Baada ya kutengenezwa huwezi kuongeza, kuondoa au kusasisha vipengele kutoka kwenye orodha.
  • Seti zilizogandishwa zisizoweza kubadilika zina hashable, zinaweza kutumika kama ufunguo wa kamusi au vipengele vya kifaa kingine.
  • Seti iliyogandishwa imeundwa kwa kutumia kitendakazi cha frozenset().
  • Seti iliyogandishwa hutoa seti sawa ya mbinu kwa kulinganisha na kuweka kama muungano(), makutano, nakala(), isdisjoint() n.k.

Katika nakala hii umeona ni nini kimewekwa, tofauti kati ya seti na seti iliyohifadhiwa, jinsi ya kuunda na kufikia vipengele vilivyowekwa, mbinu za kuweka nk ...