„Python“ kolekcijos: viskas, ką reikia žinoti apie „Python“ kolekcijas



Šiame tinklaraštyje bus pateikti integruoti python duomenų rinkimo tipai kartu su kolekcijų moduliu su visomis specializuotomis kolekcijos duomenų struktūromis.

„Python“ programavimo kalba yra keturi rinkimo duomenų tipai - sąrašą , paketas, rinkiniai ir . Bet taip pat yra įmontuotas modulis, žinomas kaip kolekcijos, turintis specializuotas duomenų struktūras, kurios iš esmės apima keturių duomenų tipų trūkumus. Šiame tinklaraštyje išsamiai apžvelgsime kiekvieną iš šių specializuotų duomenų struktūrų. Toliau pateikiamos šiame tinklaraštyje apipintos temos:

Kas yra „Python“ kolekcijos?

„Python“ rinkiniai iš esmės yra sudėtinių duomenų tipai, būtent sąrašai, rinkiniai, rinkiniai, žodynas. Jie turi skirtingas charakteristikas, atsižvelgiant į deklaraciją ir naudojimą.





  • Sąrašas skelbiamas laužtiniuose skliaustuose, jis yra keičiamas, jame saugomos pasikartojančios vertės ir elementai gali būti pasiekiami naudojant rodykles.

  • Dvivietis yra užsakytas ir nekintamas, nors jo viduje gali būti pasikartojantys įrašai.



  • Rinkinys netvarkytas ir nurodytas laužtiniuose skliaustuose. Jis nėra indeksuotas ir neturi pasikartojančių įrašų.

  • Žodynas turi pagrindinių verčių poras ir yra kintamo pobūdžio. Žodynui deklaruoti naudojame laužtinius skliaustus.

Tai yra „python“ bendrosios paskirties įmontuotų konteinerių duomenų tipai. Bet kaip mes visi žinome, pitonas visada gali pasiūlyti šiek tiek papildomų dalykų. Jis ateina su „python“ moduliu, pavadintu kolekcijos, turinčios specializuotas duomenų struktūras.



Specializuotos duomenų rinkimo struktūros

Kolekcijos modulis python diegia specializuotas duomenų struktūras, kurios suteikia alternatyvą įmontuotiems „python“ sudėtiniams duomenų tipams. Toliau pateikiamos specializuotos duomenų struktūros rinkinių modulyje.

  1. namedtuple ()
  2. ir
  3. Grandinės žemėlapis
  4. Skaitliukas
  5. UžsakytaDiktuoti
  6. defaultdict
  7. „UserDict“
  8. „UserList“
  9. „UserString“

namedtuple ()

Jis grąžina atkarpą su pavadintu įrašu, o tai reiškia, kad kiekvienoje reikšmėje bus priskirtas vardas. Tai įveikia prieigos prie elementų problemą naudojant indekso reikšmes. Su namedtuple () tampa lengviau pasiekti šias reikšmes, nes norint gauti konkrečius elementus nereikia atsiminti indekso reikšmių.

Kaip tai veikia?

Visų pirma, turite importuoti kolekcijų modulį, jo nereikia įdiegti.

iš kolekcijų importuokite kelis kartus

Peržiūrėkite šį kodą, kad suprastumėte, kaip galite naudoti pavadintą paketą.

a = namedtuple ('kursai', 'vardas, technologija') s = a ('duomenų mokslas', 'python') spausdinimas (-ai) # išvestis bus kursai (pavadinimas = 'python', tech = 'python')

Kaip susikurti pavadintą sąrašą naudojant sąrašą?

s._make (['duomenų mokslas', 'python']) # išvestis bus tokia pati kaip ir anksčiau.

ir

„deque“, tariamas kaip „denis“, yra optimizuotas sąrašas, kad būtų lengva atlikti įterpimą ir ištrynimą.

Kaip tai veikia?

# deque sukūrimas iš kolekcijų importo deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) # išvestis bus deque ([' d), „u“, „r“, „e“, „k“])

Dabar pažvelkime, kaip įterpsime ir pašalinsime daiktus iš deque.

a1.append ('a') print (a1) # išvestis bus deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # išvestis bus deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Kaip turėtų būti akivaizdu, komponento įterpimas yra patobulintas naudojant „deque“, taip pat galite pašalinti komponentus.

a1.pop () print (a1) # # išvestis bus deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) # išvestis bus deque (['d', 'u', 'r', 'e', ​​'k'])

Panašiai kaip įmontuoti duomenų tipai, yra keletas kitų operacijų, kurias galime atlikti deque. Kaip elementų skaičiavimas ar deque išvalymas ir pan.

rūšiuoti c ++

Grandinės žemėlapis

Tai yra žodynas, panašus į klasę, kuris gali padaryti vieną vaizdą iš kelių susiejimų. Iš esmės pateikiamas kelių kitų žodynų sąrašas. Tarkime, kad turite du žodynus su keliomis pagrindinių verčių poromis, šiuo atveju „ChainMap“ sudarys vieną sąrašą su abiem žodynais.

Kaip tai veikia?

rūšiavimo funkcija c ++ masyvas
iš kolekcijų importuokite „ChainMap“ a = {1: 'edureka', 2: 'python'} b = {3: 'duomenų mokslas', 4: 'Mašininis mokymasis} c = ChainMap (a, b) print (c) #the išvestis bus „ChainMap“ [{1: 'edureka', 2: 'python'}, {3: 'duomenų mokslas, 4:' Mašininis mokymasis}}]

Norėdami pasiekti arba įterpti elementus, raktus naudojame kaip indeksą. Bet norėdami pridėti naują žodyną „ChainMap“, mes naudojame šį metodą.

a1 = {5: „AI“, 6: „neuroniniai tinklai“} c1 = c. new_child (a1) print (c1) # išvestis bus „ChainMap“ [{1: 'edureka', 2: 'python'}, { 3: „duomenų mokslas“, 4: „mašininis mokymasis“}, {5: „AI“, 6: „neuroniniai tinklai“}]

Skaitliukas

Tai yra žodyno poklasis, naudojamas suskaičiuojamiems objektams suskaičiuoti.

Kaip tai veikia?

iš kolekcijų importo Skaitiklis a = [1,1,1,1,2,3,3,4,3,3,4] c = Skaitliukas (a) spausdinti (c) # išvestis bus Skaitiklis = ({1: 4, 2: 1, 3: 4, 4: 2})

Be operacijų, kurias galite atlikti žodyne, skaitiklis turi dar 3 operacijas, kurias galime atlikti.

  1. elemento funkcija - ji pateikia sąrašą, kuriame yra visi skaitiklio elementai.
  2. „Most_common ()“ - jis pateikia sutvarkytą sąrašą su kiekvieno skaitiklio elemento skaičiumi.
  3. Atimkite () - jis ima iteruojamą objektą kaip argumentą ir atima skaitiklio elementų skaičių.

UžsakytaDikta

Tai žodyno poklasis, kuris prisimena įrašų pridėjimo tvarką. Iš esmės, net jei pakeisite rakto vertę, padėtis nebus pakeista dėl tvarkos, kuria ji buvo įterpta į žodyną.

Kaip tai veikia?

iš kolekcijų importo OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' iš [7] = 'a' spausdinti (iš) # išvestis bus OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, „r“), (5, „e“), (6, „k“), (7, „a“)]

Nesvarbu, kokia vertė įterpiama į žodyną, „OrderedDict“ prisimena eilės tvarką, kuria ji buvo įterpta, ir atitinkamai gauna išvestį. Net jei pakeisime rakto vertę. Sakykime, jei pakeisime rakto reikšmę 4 į 8, išvestyje tvarka nepasikeis.

defaultdict

Tai žodyno poklasis, kuris iškviečia gamyklos funkciją, kad pateiktų trūkstamas reikšmes. Apskritai, jis nemeta klaidų, kai trūksta raktinės reikšmės iškviečiama žodyne.

Kaip tai veikia?

iš kolekcijų importuoti defaultdict d = defaultdict (int) # mes taip pat turime nurodyti tipą. d [1] = 'edureka' d [2] = 'python' print (d [3]) # tai suteiks išvestį kaip 0, o ne raktų klaidą.

„UserDict“

Ši klasė veikia kaip žodyno objektų apvyniojimas. Šios klasės poreikis kilo iš būtinybės subklasę tiesiogiai diktuoti. Dirbti su šia klase tampa lengviau, nes pagrindinis žodynas tampa atributu.

klasės kolekcijos.UserDict ([pradiniai duomenys])

Ši klasė imituoja žodyną. Egzemplioriaus turinys laikomas įprastame žodyne, prie kurio galima prisijungti naudojant „UserDict“ klasės atributą „data“. Pradinių duomenų nuoroda nelaikoma, kad ją būtų galima naudoti kitiems tikslams.

„UserList“

Ši klasė veikia kaip apvyniojimas aplink sąrašo objektus. Tai yra naudinga bazinė klasė kitiems sąrašams, pvz., Klasėms, kurios gali paveldėti iš jų ir nepaisyti esamų metodų ar net pridėti mažiau naujų.

Šios klasės poreikis kilo iš būtinybės subklasę tiesiogiai iš sąrašo. Dirbti su šia klase tampa lengviau, nes pagrindinis sąrašas tampa atributu.

klasės kolekcijos.UserList ([sąrašas])

Tai klasė, kuri imituoja sąrašą. Egzemplioriaus turinys laikomas įprastame sąraše. Remiantis sąrašo pogrupiais, siūloma konstruktorius, kurį galima iškviesti be jokio ginčo arba su vienu.

Šiame tinklaraštyje sužinojome apie specializuotas duomenų struktūras, pateiktas su python kolekcijų moduliu. Optimizavimas lemia geresnius rezultatus ir geresnius rezultatus. Tas pats pasakytina ir apie mūsų pačių karjerą bei įgūdžius. Jei norite pradėti mokymąsi ir optimizuoti tai, kaip suvokiate programavimą, užsiregistruokite „edureka“ ir atskleiskite begales galimybių su pitonu.

Turite klausimų? paminėkite juos komentaruose, ir mes kuo greičiau susisieksime su jumis.