Python-ohjelmointikielellä on neljä kokoelmatietotyyppiä - lista , kaksinkertainen, sarjat ja . Mutta mukana tulee myös sisäänrakennettu moduuli, joka tunnetaan nimellä kokoelmat ja jolla on erikoistuneet tietorakenteet, jotka kattavat periaatteessa neljän tietotyypin puutteet. Tässä blogissa käymme läpi kaikki nämä erikoistuneet tietorakenteet yksityiskohtaisesti. Seuraavat ovat tämän blogin peitetyt aiheet:
mitä sarjoitetaan jaavassa
Mitä kokoelmat ovat Pythonissa?
Pythonin kokoelmat ovat pohjimmiltaan konttitietotyyppejä, nimittäin luettelot, sarjat, joukot, sanakirja. Niillä on erilaiset ominaisuudet ilmoituksen ja käytön perusteella.
Luettelo on ilmoitettu hakasulkeissa, se on muutettavissa, tallentaa päällekkäiset arvot ja elementteihin pääsee hakemistojen avulla.
Kaksois on järjestetty ja luonteeltaan muuttumaton, vaikka kaksoiskappaleet voivat olla siellä dupleksin sisällä.
Sarja on järjestämätön ja ilmoitettu hakasulkeissa. Sitä ei ole indeksoitu eikä sillä ole myöskään päällekkäisiä merkintöjä.
Sanakirjassa on avainarvopareja, ja se on luonteeltaan muutettavissa. Käytämme hakasulkeita sanakirjan julistamiseen.
Nämä ovat pythonin yleiskäyttöisiä sisäänrakennettuja säilötietotyyppejä. Mutta kuten me kaikki tiedämme, pythonilla on aina tarjolla jotain ylimääräistä. Sen mukana tulee python-moduuli nimeltä kokoelmat, jolla on erikoistuneet tietorakenteet.
Erikoistuneet keräystietorakenteet
Kokoelmat moduuli pythonissa toteuttaa erikoistuneita tietorakenteita, jotka tarjoavat vaihtoehdon pythonin sisäänrakennetuille säilötietotyypeille. Seuraavassa on erikoistuneet tietorakenteet kokoelmamoduulissa.
- namedtuple ()
- ja
- Ketjukartta
- Laskuri
- TilattuDict
- defaultdict
- UserDict
- UserList
- UserString
namedtuple ()
Se palauttaa dupleksin, jolla on nimetty merkintä, mikä tarkoittaa, että jokaiselle dupleksin arvolle on annettu nimi. Se voittaa ongelman päästä elementteihin indeksiarvoilla. Namedtuple () -toiminnon avulla näiden arvojen käyttö on helpompaa, koska sinun ei tarvitse muistaa indeksiarvoja saadaksesi tiettyjä elementtejä.
Kuinka se toimii?
Ensinnäkin sinun on tuotava kokoelmamoduuli, se ei vaadi asennusta.
tuoda kokoelmista nimekuppi
Katso seuraava koodi ymmärtääksesi kuinka voit käyttää namedtuple-sovellusta.
a = namedtuple ('kurssit', 'nimi, tekniikka') s = a ('tiede', 'python') tulosta (t) #ulostulo on kursseja (nimi = 'python', tech = 'python')
Kuinka luoda nimetty kaksikko luettelon avulla?
s._make (['data science', 'python']) #ulostulo on sama kuin aiemmin.
ja
deque, joka on lausuttu kanneksi, on optimoitu luettelo, joka helpottaa lisäystä ja poistamista.
Kuinka se toimii?
#luodaan deque kokoelmista tuoda deque a = ['d', 'u', 'r', 'e', 'k'] a1 = deque (a) tulosta (a1) #ulostulo on deque ([' d ',' u ',' r ',' e ',' k '])
Katsotaan nyt, miten lisätään ja poistetaan kohteita dequesta.
a1.append ('a') print (a1) # tulos on deque (['d', 'u', 'r', 'e', 'k', 'a']) a1.appendleft (' e ') print (a1) # tulos on deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])
Kuten pitäisi olla ilmeistä, komponentin lisäämistä parannetaan käyttämällä dequea, voit myös poistaa komponentit.
a1.pop () print (a1) #ulostus on deque (['e', 'd', 'u', 'r', 'e', 'k']) a1.popleft () print (a1 ) #ulostus on deque (['d', 'u', 'r', 'e', 'k'])
Samalla tavalla kuin sisäänrakennetut tietotyypit, on olemassa useita muita toimintoja, jotka voimme suorittaa deque. Kuten elementtien laskeminen tai dequen tyhjentäminen jne.
KetjuKartta
Se on sanakirjan kaltainen luokka, joka pystyy tekemään yhden näkymän useista kartoituksista. Se palauttaa periaatteessa luettelon useista muista sanakirjoista. Oletetaan, että sinulla on kaksi sanakirjaa, joilla on useita avainarvopareja, tässä tapauksessa ChainMap tekee yhden luettelon, jossa on molemmat sanakirjat.
Kuinka se toimii?
kokoelmista tuo ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Machine learning'} c = ChainMap (a, b) print (c) #the tuotos on ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]
Elementtien käyttämiseen tai lisäämiseen käytämme näppäimiä hakemistona. Mutta uuden sanakirjan lisäämiseen ChainMapiin käytämme seuraavaa lähestymistapaa.
a1 = {5: 'AI', 6: 'neuroverkot'} c1 = c.uusi_lapsi (a1) tulosta (c1) #ulostuloksi tulee ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'datatiede', 4: 'koneoppiminen'}, {5: 'tekoäly', 6: 'hermoverkot'}]
Laskuri
Se on sanakirjan alaluokka, jota käytetään hash-esineiden laskemiseen.
Kuinka se toimii?
kokoelmien tuonnista Laskuri a = [1,1,1,1,2,3,3,4,3,3,4] c = Laskuri (a) tulosta (c) #ulostuloksi tulee Laskuri = ({1: 4, 2: 1, 3: 4, 4: 2})
Sanakirjassa tehtävien toimintojen lisäksi laskurilla on vielä 3 toimintoa, jotka voimme suorittaa.
- element function - Se palauttaa luettelon, joka sisältää kaikki laskurin elementit.
- Most_common () - Se palauttaa lajitellun luettelon, jossa on laskurin jokaisen elementin määrä.
- Vähennä () - Se ottaa iteroitavan objektin argumentiksi ja vähentää laskurin elementtien määrän.
TilattuDict
Se on sanakirjan alaluokka, joka muistaa järjestyksen, jossa merkinnät lisättiin. Periaatteessa, vaikka muuttaisit avaimen arvoa, sijaintia ei muuteta sen järjestyksen vuoksi, jossa se lisättiin sanakirjaan.
Kuinka se toimii?
kokoelmien tuonnista OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' mistä [7] = 'a' tulostaa (mistä) # lähtö järjestetäänDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]
Sillä ei ole väliä mikä arvo lisätään sanakirjaan, OrderedDict muistaa järjestyksen, jossa se lisättiin, ja saa tuloksen vastaavasti. Vaikka muuttaisimme avaimen arvoa. Sanotaan, että jos muutamme avaimen arvon 4 arvoksi 8, järjestys ei muutu lähdössä.
defaultdict
Se on sanakirjan alaluokka, joka kutsuu tehdasfunktion toimittamaan puuttuvat arvot. Yleensä se ei heitä virheitä, kun puuttuva avainarvo kutsutaan sanakirjaan.
Kuinka se toimii?
kokoelmista tuoda defaultdict d = defaultdict (int) #määritämme myös tyypin. d [1] = 'edureka' d [2] = 'python' -tulostus (d [3]) # se antaa tuloksen arvoksi 0 avainvirheen sijaan.
UserDict
Tämä luokka toimii kääreenä sanakirjaobjektien ympärillä. Tämän luokan tarve tuli välttämättömyydestä alaluokkaan suoraan sanelusta. Tämän luokan kanssa työskenteleminen on helpompaa, kun taustalla olevasta sanakirjasta tulee attribuutti.
luokan kokoelmat.UserDict ([initialdata])
Tämä luokka simuloi sanakirjaa. Ilmentymän sisältö pidetään tavallisessa sanakirjassa, johon pääsee luokan UserDict ”data” -attribuutilla. Lähtötietojen viitteitä ei säilytetä, jotta niitä voidaan käyttää muihin tarkoituksiin.
mikä on hashmap java
UserList
Tämä luokka toimii kuin kääre luettelo-objektien ympärillä. Se on hyödyllinen perusluokka muille luetteloille, kuten luokille, jotka voivat periä niistä ja ohittaa olemassa olevat menetelmät tai jopa lisätä vähemmän uusia.
Tämän luokan tarve tuli tarpeesta alaluokkaan suoraan luettelosta. Tämän luokan kanssa työskenteleminen on helpompaa, kun taustalla olevasta luettelosta tulee attribuutti.
luokan kokoelmat.UserList ([luettelo])
Luokka simuloi luetteloa. Ilmentymän sisältö säilytetään tavallisessa luettelossa. Luettelon alaluokkiin vedotaan tarjoamaan konstruktori, joka voidaan kutsua joko ilman tai yhdellä väitteellä.
Tässä blogissa olemme oppineet erikoistuneista tietorakenteista, jotka tulevat pythonin kokoelmamoduulin mukana. Optimointi johtaa parempaan suorituskykyyn ja parempiin tuloksiin. Sama koskee myös omaa uraa ja taitoja. Jos haluat aloittaa oppimisen ja optimoida tavan, jolla koet ohjelmoinnin, ilmoittaudu edurekaan ja vapauta loputtomat mahdollisuudet pythonilla.
Onko sinulla kysyttävää? mainitse ne kommenteissa, ja otamme sinuun yhteyttä mahdollisimman pian.