Zbirke v Pythonu: Vse, kar morate vedeti o zbirkah Python



Ta spletni dnevnik bo zajemal vgrajene vrste podatkov zbirke v pythonu, skupaj z modulom zbirk z vsemi specializiranimi strukturami podatkov zbirke.

Programski jezik Python ima štiri tipe zbirk podatkov - seznam , tuple, kompleti in . Ampak prihaja tudi z vgrajenim modulom, imenovanim zbirke, ki ima posebne podatkovne strukture, ki v bistvu pokrivajo pomanjkljivosti štirih podatkovnih vrst. V tem blogu bomo podrobno preučili vsako od teh specializiranih podatkovnih struktur. V tem blogu so zajete teme:

Kaj so zbirke v Pythonu?

Zbirke v pythonu so v bistvu tipi podatkovnih vsebnikov, in sicer seznami, nabori, nabori, slovar. Imajo različne značilnosti glede na izjavo in uporabo.





  • Seznam je naveden v oglatih oklepajih, je spremenljiv, shranjuje podvojene vrednosti in do elementov je mogoče dostopati s pomočjo indeksov.

  • Torta je urejena in nespremenljiva, čeprav so v njej lahko podvojeni vnosi.



  • Niz je neurejen in je naveden v oglatih oklepajih. Ni indeksiran in nima tudi podvojenih vnosov.

  • Slovar ima pare ključnih vrednosti in je po naravi spremenljiv. Za razglasitev slovarja uporabljamo oglate oklepaje.

To so pythonovi splošni namenski vgrajeni podatkovni tipi vsebnikov. A kot vsi vemo, ima python vedno nekaj malega za ponuditi. Na voljo je z modulom python z imenom zbirke, ki ima posebne podatkovne strukture.



Strukture specializiranih zbirk podatkov

Zbirke modul v pythonu izvaja specializirane podatkovne strukture, ki zagotavljajo alternativo vgrajenim vrstam podatkovnih vsebnikov pythona. Sledijo specializirane podatkovne strukture v modulu zbirk.

print_r v php
  1. namedtuple ()
  2. in
  3. Verižna karta
  4. Števec
  5. NaročenoDict
  6. zamudna sodba
  7. UserDict
  8. UserList
  9. UserString

namedtuple ()

Vrne torto z imenovanim vnosom, kar pomeni, da bo vsaki vrednosti v tortu dodeljeno ime. Odpravlja težavo dostopa do elementov z uporabo vrednosti indeksa. Z namedtuple () postane lažji dostop do teh vrednosti, saj vam ni treba zapomniti vrednosti indeksa, da dobite določene elemente.

Kako deluje?

Najprej morate uvoziti modul zbirk, ki ne zahteva namestitve.

iz zbirk uvozi namedtuple

Oglejte si naslednjo kodo, da boste razumeli, kako lahko uporabljate namedtuple.

a = namedtuple ('courses', 'name, tech') s = a ('data science', 'python') print (s) # izhod bodo tečaji (name = 'python', tech = 'python')

Kako ustvariti imenovani par s pomočjo seznama?

s._make (['data science', 'python']) # izhod bo enak kot prej.

in

deque, ki se izgovarja kot 'krov', je optimiziran seznam za enostavno vstavljanje in brisanje.

Kako deluje?

#creating deque iz zbirk import deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) # izhod bo deque ([' d ',' u ',' r ',' e ',' k '])

Zdaj si oglejmo, kako bomo vstavili in odstranili predmete iz deque.

a1.append ('a') print (a1) # izhod bo deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # izhod bo deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Kot bi moralo biti očitno, je vstavljanje komponente izboljšano z uporabo deque, lahko pa tudi odstranite komponente.

a1.pop () print (a1) # izhod bo deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) # izhod bo deque (['d', 'u', 'r', 'e', ​​'k'])

Podobno kot vgrajeni podatkovni tipi obstaja tudi več drugih operacij, ki jih lahko izvedemo na disku. Tako kot štetje elementov ali čiščenje deque itd.

kaj je združevanje v javi

ChainMap

To je slovar, podoben razredu, ki lahko naredi en pogled na več preslikav. V bistvu vrne seznam več drugih slovarjev. Recimo, da imate dva slovarja z več pari ključnih vrednosti, v tem primeru bo ChainMap sestavil en seznam z obema slovarjema.

Kako deluje?

iz zbirk uvozi ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Strojno učenje'} c = ChainMap (a, b) print (c) #the izhod bo ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]

Za dostop ali vstavljanje elementov uporabljamo tipke kot indeks. Toda za dodajanje novega slovarja v ChainMap uporabimo naslednji pristop.

a1 = {5: 'AI', 6: 'nevronske mreže'} c1 = c.new_child (a1) print (c1) # izhod bo ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'znanost o podatkih', 4: 'Strojno učenje'}, {5: 'AI', 6: 'nevronske mreže'}]

Števec

Je podrazred slovarja, ki se uporablja za štetje razpršenih predmetov.

Kako deluje?

iz zbirk uvoz Števec a = [1,1,1,1,2,3,3,4,3,3,4] c = Števec (a) print (c) # izhod bo Counter = ({1: 4, 2: 1, 3: 4, 4: 2})

Poleg operacij, ki jih lahko izvajate na slovarju, ima števec še 3 operacije, ki jih lahko izvedemo.

  1. funkcija elementov - Vrne seznam, ki vsebuje vse elemente v števcu.
  2. Most_common () - Vrne razvrščen seznam s številom vsakega elementa v števcu.
  3. Subtract () - Kot argument vzame predmet, ki ga je mogoče iti, in odšteje število elementov v števcu.

NaročenoDict

To je slovarski podrazred, ki si zapomni vrstni red dodajanja vnosov. Tudi če spremenite vrednost ključa, se položaj ne bo spremenil zaradi vrstnega reda, v katerem je bil vstavljen v slovar.

Kako deluje?

iz zbirk uvozi OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' iz [7] = 'a' print (from) # izhod bo OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

Ni pomembno, katera vrednost se vstavi v slovar, OrderedDict si zapomni vrstni red, v katerem je bila vstavljena, in v skladu s tem dobi izhodne podatke. Tudi če spremenimo vrednost ključa. Recimo, če spremenimo vrednost ključa od 4 do 8, se vrstni red v izhodu ne bo spremenil.

zamudna sodba

To je podrazred slovarja, ki pokliče tovarniško funkcijo za podajanje manjkajočih vrednosti. Na splošno ne povzroča napak, ko v slovar pokličete manjkajočo vrednost ključa.

Kako deluje?

iz zbirk uvozi defaultdict d = defaultdict (int) # določiti moramo tudi vrsto. d [1] = 'edureka' d [2] = 'python' print (d [3]) # to bo dalo rezultat kot 0 namesto keyerror.

UserDict

Ta razred deluje kot ovoj okoli slovarskih predmetov. Potreba po tem razredu je izhajala iz potrebe po podrazredu neposredno iz dikta. S tem razredom je lažje delati, saj osnovni slovar postane atribut.

zbirke razredov.UserDict ([začetni podatki])

Ta razred simulira slovar. Vsebina primerka se hrani v običajnem slovarju, do katerega lahko dostopate z atributom ‘data’ razreda UserDict. Sklic na začetne podatke se ne hrani, da bi se lahko uporabili za druge namene.

kako uporabljati pakete v javi -

UserList

Ta razred deluje kot ovoj okoli predmetnih seznamov. To je uporaben osnovni razred za druge sezname, kot so razredi, ki jih lahko podedujejo in preglasijo obstoječe metode ali celo dodajo tudi manj novih.

Potreba po tem razredu je izhajala iz potrebe po podrazredu neposredno s seznama. Delo s tem razredom postane lažje, saj osnovni seznam postane atribut.

zbirke razredov.UserList ([seznam])

Razred simulira seznam. Vsebina primerka se hrani na običajnem seznamu. Podrazredi seznama se opirajo na ponudbo konstruktorja, ki ga je mogoče poklicati bodisi z nobeno niti z eno trditvijo.

V tem blogu smo spoznali specializirane podatkovne strukture, ki jih dobimo z modulom zbirk v pythonu. Optimizacija vodi do boljše zmogljivosti in izboljšanih rezultatov. Enako velja tudi za našo kariero in spretnosti. Če želite začeti s svojim učenjem in optimizirati način zaznavanja programiranja, se vpišite v edureka in sprostite neskončne možnosti s pythonom.

Imate kakšna vprašanja? omenite jih v komentarjih, mi pa se vam bomo oglasili v najkrajšem možnem času.