Mga Koleksyon Sa Python: Lahat ng Kailangan Mong Malaman Tungkol sa Mga Koleksyon ng Python



Saklaw ng blog na ito ang mga built-in na uri ng data ng koleksyon sa sawa kasama ang module ng mga koleksyon kasama ang lahat ng dalubhasang istruktura ng data ng koleksyon.

Ang wika ng programa sa Python ay may apat na uri ng data ng koleksyon- listahan , tuple, set at . Pero ay mayroon ding built-in na module na kilala bilang mga koleksyon na may dalubhasang istraktura ng data na karaniwang sumasakop para sa mga pagkukulang ng apat na uri ng data. Sa blog na ito, dadaan kami sa bawat isa sa mga dalubhasang istraktura ng data nang detalyado. Ang mga sumusunod ay ang mga paksang nababalot sa blog na ito:

Ano ang Mga Koleksyon Sa Python?

Ang mga koleksyon sa sawa ay karaniwang mga uri ng data ng lalagyan, katulad ng mga listahan, set, tuple, diksyunaryo. Mayroon silang magkakaibang mga katangian batay sa deklarasyon at paggamit.





  • Ang isang listahan ay idineklara sa mga square bracket, ito ay nababagabag, nag-iimbak ng mga duplicate na halaga at mga elemento ay maaaring ma-access gamit ang mga index.

    maghintay at abisuhan ang java halimbawa
  • Ang isang tuple ay iniutos at hindi nababago sa likas na katangian, kahit na ang mga duplicate na entry ay maaaring doon sa loob ng isang tuple.



  • Ang isang hanay ay hindi naayos at idineklara sa mga square bracket. Hindi ito na-index at walang mga duplicate na entry din.

  • Ang isang diksyunaryo ay may mga pares ng pangunahing halaga at nababago ang likas na katangian. Gumagamit kami ng mga square bracket upang magdeklara ng isang diksyunaryo.

Ito ang mga pangkalahatang layunin ng built-in na uri ng data ng lalagyan ng sawa. Ngunit sa alam nating lahat, ang sawa ay laging may kaunting dagdag na maiaalok. May kasamang module ng sawa na pinangalanang mga koleksyon na may dalubhasang istruktura ng data.



Pinasadyang Mga Istraktura ng Data ng Koleksyon

Mga Koleksyon module sa sawa nagpapatupad ng mga dalubhasang istraktura ng data na nagbibigay ng kahalili sa mga built-in na uri ng data ng lalagyan ng python. Ang sumusunod ay ang dalubhasang mga istraktura ng data sa module ng mga koleksyon.

  1. pinangalanan ()
  2. at
  3. Chainmap
  4. Counter
  5. OrderedDict
  6. defaultdict
  7. UserDict
  8. Listahan ng Gumagamit
  9. UserString

pinangalanan ()

Nagbabalik ito ng isang tuple na may isang pinangalanang entry, na nangangahulugang magkakaroon ng isang pangalan na nakatalaga sa bawat halaga sa tuple. Tinatalo nito ang problema sa pag-access sa mga elemento gamit ang mga halaga ng index. Sa pamamagitan ng namestuple () mas madali itong ma-access ang mga halagang ito, dahil hindi mo kailangang tandaan ang mga halaga ng index upang makakuha ng mga tukoy na elemento.

Paano ito gumagana?

Una sa lahat, dapat kang mag-import ng mga module ng koleksyon, hindi ito nangangailangan ng pag-install.

mula sa mga koleksyon ay nag-import ng pinuno

Tingnan ang sumusunod na code upang maunawaan kung paano mo magagamit ang namestuple.

a = namedtuple ('mga kurso', 'pangalan, tech') s = a ('data science', 'python') na naka-print (mga) #ang output ay magiging mga kurso (name = 'python', tech = 'python')

Paano Lumikha ng Isang namestuple Paggamit ng Isang Listahan?

s._make (['data science', 'python']) # Ang output ay magiging katulad ng dati.

at

Ang deque na binibigkas bilang 'deck' ay isang na-optimize na listahan upang madaling maisagawa ang pagpapasok at pagtanggal.

Paano ito gumagana

#glikha ng isang deque mula sa mga koleksyon ay mag-import ng deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) #the output will be deque ([' d ',' u ',' r ',' e ',' k '])

Hinahayaan mo ngayong tingnan kung paano natin isisingit at aalisin ang mga item mula sa deque.

a1.append ('a') print (a1) # ang output ay magiging deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # ang output ay magiging deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Tulad ng dapat maging halata, ang pagpasok ng isang bahagi ay pinahusay na paggamit ng deque, maaari mo ring alisin ang mga bahagi.

a1.pop () print (a1) #the output will be deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) #ang output ay magiging deque (['d', 'u', 'r', 'e', ​​'k'])

Katulad ng mga built-in na uri ng data, maraming iba pang mga operasyon na maaari naming maisagawa sa isang deque. Tulad ng pagbibilang ng mga elemento o pag-clear ng deque atbp.

halimbawa ng mga object ng java

ChainMap

Ito ay isang diksyunaryo tulad ng klase na kung saan ay magagawang gumawa ng isang solong pagtingin sa maraming mga pagmamapa. Karaniwan itong nagbabalik ng isang listahan ng maraming iba pang mga diksyunaryo. Ipagpalagay na mayroon kang dalawang mga diksyunaryo na may maraming pangunahing mga pares ng halaga, sa kasong ito ang ChainMap ay gagawa ng isang listahan kasama ang parehong mga diksyunaryo dito.

Paano ito gumagana

mula sa mga koleksyon ay nag-import ng ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'science sa data', 4: 'Pag-aaral ng makina'} c = ChainMap (a, b) print (c) #the ang output ay magiging ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Pag-aaral ng makina'}]

Upang ma-access o maipasok ang mga elemento ay ginagamit namin ang mga key bilang index. Ngunit upang magdagdag ng isang bagong diksyunaryo sa ChainMap ginagamit namin ang sumusunod na diskarte.

a1 = {5: 'AI', 6: 'neural network'} c1 = c.new_child (a1) print (c1) #ang output ay magiging ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'science sa data', 4: 'Pag-aaral ng makina'}, {5: 'AI', 6: 'mga neural network'}]

Counter

Ito ay isang subclass ng diksyunaryo na ginagamit upang bilangin ang mga hindi napapasukang bagay.

Paano ito gumagana

mula sa mga koleksyon import Counter a = [1,1,1,1,2,3,3,4,3,3,4] c = Counter (a) print (c) #ang output ay magiging Counter = ({1: 4, 2: 1, 3: 4, 4: 2})

Bilang karagdagan sa mga pagpapatakbo na maaari mong gampanan sa isang diksyonaryo ang Counter ay may 3 pang operasyon na maaari nating maisagawa.

  1. pagpapaandar ng elemento - Nagbabalik ito ng isang listahan na naglalaman ng lahat ng mga elemento sa Counter.
  2. Most_common () - Nagbabalik ito ng isang listahan ng pinagsunod-sunod na may bilang ng bawat elemento sa Counter.
  3. Ibawas () - Ito ay tumatagal ng isang umuulit na bagay bilang isang pagtatalo at binabawas ang bilang ng mga elemento sa Counter.

OrderedDict

Ito ay isang subclass ng diksyunaryo na naaalala ang pagkakasunud-sunod kung saan idinagdag ang mga entry. Talaga, kahit na binago mo ang halaga ng susi, ang posisyon ay hindi mababago dahil sa pagkakasunud-sunod kung saan ito ay naipasok sa diksyunaryo.

Paano ito gumagana

mula sa mga koleksyon i-import ang OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' mula sa [7] = 'isang' print (mula sa) #ang output ay OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

Hindi mahalaga kung anong halaga ang naipasok sa diksyunaryo, naaalala ng OrderedDict ang pagkakasunud-sunod kung saan ito ay naipasok at nakakuha ng output nang naaayon. Kahit na binago natin ang halaga ng susi. Hinahayaan nating sabihin, kung babaguhin natin ang pangunahing halagang 4 hanggang 8, ang order ay hindi magbabago sa output.

defaultdict

Ito ay isang subclass ng diksyunaryo na tumatawag sa isang pagpapaandar ng pabrika upang magbigay ng mga nawawalang halaga. Sa pangkalahatan, hindi ito nagtatapon ng anumang mga error kapag ang isang nawawalang pangunahing halaga ay tinawag sa isang diksyunaryo.

Paano ito gumagana

mula sa mga koleksyon i-import ang defaultdict d = defaultdict (int) # kailangan nating tukuyin din ang isang uri. d [1] = 'edureka' d [2] = 'python' print (d [3]) # bibigyan nito ang output bilang 0 sa halip na keyerror.

UserDict

Ang klase na ito ay gumaganap bilang isang pambalot sa paligid ng mga bagay ng diksyonaryo. Ang pangangailangan para sa klase na ito ay nagmula sa pangangailangan na mag-subclass nang direkta mula sa dikta. Nagiging mas madali upang gumana sa klase na ito dahil ang napapailalim na diksiyunaryo ay naging isang katangian.

mga koleksyon ng klase.UserDict ([initialdata])

Ang klase na ito ay tumutulad sa isang diksyunaryo. Ang nilalaman ng halimbawa ay itinatago sa isang regular na diksyunaryo na maaaring ma-access gamit ang katangiang ‘data’ ng klase ng UserDict. Ang sanggunian ng paunang data ay hindi itinatago, para magamit ito para sa iba pang mga layunin.

kung paano makahanap ng pinakamalaking numero sa array java

Listahan ng Gumagamit

Ang klase na ito ay kumikilos tulad ng isang pambalot sa paligid ng mga bagay na listahan. Ito ay isang kapaki-pakinabang na batayang klase para sa iba pang listahan tulad ng mga klase na maaaring magmamana mula sa kanila at ma-override ang mga mayroon nang pamamaraan o kahit na magdagdag din ng mas kaunting mga bago.

Ang pangangailangan para sa klase na ito ay nagmula sa pangangailangan na mag-subclass nang direkta mula sa listahan. Nagiging mas madali upang gumana sa klase na ito dahil ang napapailalim na listahan ay naging isang katangian.

mga koleksyon ng klase.UserList ([listahan])

Ito ang klase na tumutulad sa isang listahan. Ang mga nilalaman ng halimbawa ay itinatago sa isang kaugalian na listahan. Ang mga sub-klase ng listahan ay umaasa upang mag-alok ng isang tagapagbuo na maaaring tawaging may alinman sa hindi o isang pagtatalo.

Sa blog na ito, natutunan namin ang tungkol sa dalubhasang mga istraktura ng data na kasama ng module ng mga koleksyon sa sawa. Ang pag-optimize ay humahantong sa mas mahusay na pagganap at pinahusay na mga resulta. Parehong nalalapat sa aming sariling karera at mga kasanayan din. Kung nais mong simulan ang iyong pag-aaral at i-optimize ang paraang maramdaman mo ang programa, magpatala sa edureka at ilabas ang walang katapusang mga posibilidad na may sawa.

Mayroon bang mga query? banggitin ang mga ito sa mga puna, at babalikan ka namin sa lalong madaling panahon.