Samlinger i Python: Alt du trenger å vite om Python-samlinger



Denne bloggen vil dekke de innebygde datatypene for samling i python sammen med samlingsmodulen med alle de spesialiserte datastrukturene for samlingen.

Python programmeringsspråk har fire datatyper for samling- liste , tuple, sett og . Men kommer også med en innebygd modul kjent som samlinger som har spesialiserte datastrukturer som i utgangspunktet dekker for manglene ved de fire datatypene. I denne bloggen vil vi gå gjennom hver av de spesialiserte datastrukturene i detalj. Følgende er emnene innhyllet i denne bloggen:

Hva er samlinger i Python?

Samlinger i python er i utgangspunktet containerdatatyper, nemlig lister, sett, tupler, ordbok. De har forskjellige egenskaper basert på erklæringen og bruken.





  • En liste er deklarert med firkantede parenteser, den kan endres, lagrer dupliserte verdier og elementer kan nås ved hjelp av indekser.

  • En tuple er ordnet og uforanderlig i naturen, selv om duplikatoppføringer kan være der inne i en tuple.



  • Et sett er ikke ordnet og deklarert i parentes. Den er ikke indeksert og har ikke dupliserte oppføringer også.

  • En ordbok har nøkkelverdipar og kan endres. Vi bruker firkantede parenteser for å erklære en ordbok.

Dette er pythons generelle innebygde datatyper for containere. Men som vi alle vet, har python alltid litt ekstra å tilby. Den leveres med en python-modul som heter samlinger som har spesialiserte datastrukturer.



Spesialiserte datastrukturer for innsamling

Samlinger modul i python implementerer spesialiserte datastrukturer som gir et alternativ til pythons innebygde container-datatyper. Følgende er de spesialiserte datastrukturene i samlingsmodulen.

  1. namedtuple ()
  2. og
  3. Chainmap
  4. Disk
  5. OrderedDict
  6. standarddikt
  7. UserDict
  8. Brukerliste
  9. UserString

namedtuple ()

Den returnerer en tuple med en navngitt oppføring, noe som betyr at det vil være et navn som er tilordnet hver verdi i tupelen. Det overvinner problemet med å få tilgang til elementene ved hjelp av indeksverdiene. Med namedtuple () blir det lettere å få tilgang til disse verdiene, siden du ikke trenger å huske indeksverdiene for å få spesifikke elementer.

Hvordan det fungerer?

Først og fremst må du importere samlingsmodulen, den krever ikke installasjon.

hva er abstraksjon i java med eksempel
fra samlinger importert navngitt tuple

Se på følgende kode for å forstå hvordan du kan bruke namedtuple.

a = namedtuple ('courses', 'name, tech') s = a ('data science', 'python') print (s) # utdata vil være kurs (name = 'python', tech = 'python')

Hvordan lage en navngitt duple ved hjelp av en liste?

s._make (['data science', 'python']) # utgangen vil være den samme som før.

og

deque uttalt som 'deck' er en optimalisert liste for å utføre innsetting og sletting enkelt.

Hvordan det fungerer?

#creating a deque from collection import deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) # output vil være deque ([' d ',' u ',' r ',' e ',' k '])

La oss nå se på hvordan vi skal sette inn og fjerne gjenstander fra deque.

a1.append ('a') utskrift (a1) # utgangen vil være deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # utgangen vil være deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Som det skal være åpenbart, er det bedre å sette inn en komponent ved å bruke deque, og du kan også fjerne komponenter.

a1.pop () utskrift (a1) # utgangen vil være deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () utskrift (a1 ) # utgangen vil være deque (['d', 'u', 'r', 'e', ​​'k'])

I likhet med de innebygde datatypene, er det flere andre operasjoner vi kan utføre på en deque. Som å telle elementer eller rydde deque etc.

ChainMap

Det er en ordbok som klasse som er i stand til å gjøre en enkelt visning av flere kartlegginger. Det returnerer i utgangspunktet en liste over flere andre ordbøker. Anta at du har to ordbøker med flere viktige verdipar, i dette tilfellet vil ChainMap lage en enkelt liste med begge ordbøkene i.

Hvordan det fungerer?

fra samlinger importerer ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Machine learning'} c = ChainMap (a, b) print (c) #the output vil være ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]

For å få tilgang til eller sette inn elementer bruker vi tastene som indeks. Men for å legge til en ny ordbok i ChainMap bruker vi følgende tilnærming.

a1 = {5: 'AI', 6: 'nevrale nettverk'} c1 = c.new_child (a1) utskrift (c1) # utgangen vil være ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'data science', 4: 'Machine learning'}, {5: 'AI', 6: 'neurale nettverk'}]

Disk

Det er en ordboksunderklasse som brukes til å telle hashable objekter.

Hvordan det fungerer?

fra samlinger importerer Teller a = [1,1,1,1,2,3,3,4,3,3,4] c = Teller (a) utskrift (c) # utgangen vil være Teller = ({1: 4, 2: 1, 3: 4, 4: 2})

I tillegg til operasjonene kan du utføre på en ordbok. Teller har 3 flere operasjoner som vi kan utføre.

  1. elementfunksjon - Den returnerer en liste som inneholder alle elementene i telleren.
  2. Most_common () - Den returnerer en sortert liste med antallet av hvert element i telleren.
  3. Subtraher () - Det tar et iterabelt objekt som argument og trekker telleren av elementene i telleren.

OrderedDict

Det er en ordbokunderklasse som husker rekkefølgen oppføringene ble lagt til. I utgangspunktet, selv om du endrer verdien på nøkkelen, vil ikke posisjonen endres på grunn av rekkefølgen den ble satt inn i ordboken.

Hvordan det fungerer?

fra samlinger importert OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' fra [7] = 'a' utskrift (fra) # utgangen vil være Orderedict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

Det spiller ingen rolle hvilken verdi som blir satt inn i ordboken, OrderedDict husker rekkefølgen den ble satt inn i, og får utdataene tilsvarende. Selv om vi endrer verdien på nøkkelen. La oss si, hvis vi endrer nøkkelverdien 4 til 8, vil ikke rekkefølgen endres i utdataene.

standarddikt

Det er en ordbokens underklasse som kaller en fabrikkfunksjon for å levere manglende verdier. Generelt kaster det ikke feil når en manglende nøkkelverdi kalles i en ordbok.

Hvordan det fungerer?

fra samlinger importerer standarddict d = defaultdict (int) # vi må også spesifisere en type. d [1] = 'edureka' d [2] = 'python' utskrift (d [3]) # det vil gi utdata som 0 i stedet for nøkkelfeil.

UserDict

Denne klassen fungerer som en innpakning rundt ordbokobjekter. Behovet for denne klassen kom fra nødvendigheten av å underklasse direkte fra dikt. Det blir lettere å jobbe med denne klassen ettersom den underliggende ordboken blir et attributt.

klassesamlinger.UserDict ([initialdata])

Denne klassen simulerer en ordbok. Innholdet i forekomsten holdes i en vanlig ordbok som er tilgjengelig med 'data' attributtet til klassen UserDict. Henvisningen til innledende data lagres ikke, for den kan brukes til andre formål.

Brukerliste

Denne klassen fungerer som en omslag rundt listeobjektene. Det er en nyttig basisklasse for andre lister som klasser som kan arve fra dem og overstyre eksisterende metoder eller til og med legge til færre nye også.

Behovet for denne klassen kom fra nødvendigheten av å underklasse direkte fra listen. Det blir lettere å jobbe med denne klassen ettersom den underliggende listen blir et attributt.

klassesamlinger.Brukerliste ([liste])

Det er klassen som simulerer en liste. Innholdet i forekomsten holdes i en vanlig liste. Underklassene i listen er stolte på å tilby en konstruktør som kan kalles med enten ingen eller en påstand.

I denne bloggen har vi lært om de spesialiserte datastrukturene som følger med samlingsmodulen i python. Optimalisering fører til bedre ytelse og forbedrede resultater. Det samme gjelder også vår egen karriere og ferdigheter. Hvis du vil starte læringen din og optimalisere måten du oppfatter programmering på, kan du registrere deg i edureka’s og slipp løs de uendelige mulighetene med python.

Har du spørsmål? nevn dem i kommentarer, så kommer vi tilbake til deg så snart som mulig.