Python Collections StandardDICT

Python Collections StandardDICT
Når du bruker Python -ordbøkene, kan du prøve å få tilgang til eller oppdatere nøklene som mangler i ordboken. Kodeutførelsen din blir avbrutt og en nøkkelring vil bli reist. StandardDICT-typen er en klasse som ligner en ordboklignende klasse og er tilgjengelig i Pythons “Collections” -bibliotek for å håndtere og unngå denne typen situasjoner. Vi får en grundig forklaring på hva standarddikten er og hvordan den skiller seg fra standard Python Dictionary. Videre lærer vi hvordan vi generelt administrerer de manglende feilene i Python. Til slutt vil vi forklare hvordan du bruker standarddiktobjektet og bruker det til å akkumulere, gruppere og telle dataene.

Hvordan håndteres de manglende nøklene i Python Dictionaries?

Data lagres som nøkkelverdipar i Python-ordbøker som er viktige datastrukturer. Fordi hver nøkkel i ordbøkene tilsvarer en verdi, er de kjent som assosiative matriser. Vi kan direkte hente en nøkkelverdi fra en Python -ordbok ved å omslutte nøkkelen i firkantede parenteser. La oss undersøke hvordan du får en nøkkelverdi fra en ordbok i Python:

Hva om vi prøver å få tilgang til en ordboks nøkkel som ikke er til stede eller ikke eksisterer?

Som vi kan se, blir en nøkkelring hevet når vi prøver å få tilgang til en ordboksnøkkel som ikke eksisterer. Hvis feilen ikke er løst, vil programmet vårt krasje. Python tilbyr en rekke alternativer for å unngå dette, men å bruke standardDICT er den beste løsningen for dette. Det gir en klar, sikker metode for å gi spesifiserte standardverdier for enhver nøkkel som ikke eksisterer uten behov for å i utgangspunktet opprette den.

Hva er standarddikt i Python?

En modul som gir spesialiserte containertyper kalles samlinger og er tilgjengelig i Python Standard Library. StandardDICT -typen er en av dem; Det er en klasse av diktertypen som ble opprettet spesielt for å hjelpe deg med manglende nøkler. Python standardDICT -type stammer fra DICT:

Den gitte koden demonstrerer at standarddikt -typen i Python er en underklasse av DICT. Dette innebærer at det har mange av de samme egenskapene som ordboksklassen, samtidig som de endrer og utvider noen av funksjonene.

Følgende er de betydelige modifikasjonene av ordboksklassen:

  • StandardDICT overstyrer __missing __ (). Det forhindrer å øke nøkkelringen når en nøkkel mangler.
  • En skrivbar forekomstvariabel kalt “.standardfabrikk ”legges til som må leveres under instantiering.

Generelt tilbyr standardDICT -metoder for å gi ordbøkene med standardverdiene i fravær av en nøkkel. Enhver akseptabel kallbar (for eksempel int, liste osv.) eller ingen kan sendes til “.Standard_factory ”Kallbar. Når som helst vi prøver å få tilgang til eller endre verdien som tilsvarer en manglende nøkkel, kaller StandardDict automatisk en omgivende hvis den er gitt.

En introduksjon til standarddiktens klasse i Python og hvordan den skiller seg fra en standard Python -ordbok er dekket i denne delen. Nå vil vi bruke disse objektene i følgende avsnitt for å forbedre dine evner til å bruke ordbøkene og håndtere de manglende dataene.

Hvordan kan vi lage en standarddikt?

Denne delen lærer deg hvordan du bruker Pythons samlingsmodul for å opprette et standarddiktobjekt. Vi kan ganske enkelt importere modulen fordi denne modulen er inkludert i standardbiblioteket til Python. La oss utforske hvordan vi kan lage en standarddict:

Her opprettes en standarddict med navnet "Defdict". Vi må gi en gyldig kallbar for å generere ordboken med hell. Disse callables gir metoder for å produsere mange typer objekter inkludert tall, lister osv. I stedet for å bruke funksjonen, må vi bruke det omtalende.

Når vi oppretter ordboken i dette tilfellet, sender vi listen til ".standard ”fabrikk. Debdict brukes deretter på samme måte som en standardordbok. Merk at ordboken tildeler standardverdien som får fra å ringe listen () når du prøver å få tilgang til eller oppdatere verdien som er kartlagt til en nøkkel som ikke eksisterer.

Ikke ring default_factory ved hjelp av parenteser på initialiseringstidspunktet, siden et gyldig Python -kallbart objekt må sendes.

Håndtering av de manglende nøklene ved hjelp av standarddikten

Denne delen lærer deg hvordan du bruker Pythons standarddict for å håndtere de manglende nøklene. Vi vet allerede at du må spesifisere en standardverdistype når du oppretter en ny standardDICT. Dette gjør oss i stand til å administrere de manglende dataene når vi prøver å få tilgang til en nøkkel som ikke er til stede eller ikke eksisterer. La oss se på følgende:

Fra det gitte eksemplet er det tydelig at vi lykkes med å få tilgang til en nøkkel som ikke eksisterte, og at en "0" -verdi returneres.

Teller listeelementene ved å bruke standarddikten

Effektivt å telle elementene/objektene i en iterable og returnere tellingene i en ordbok er to kreative applikasjoner for standardDICT -objektet. La oss se på hvordan vi kan oppnå dette ved hjelp av Pythons Standard Dictionary før vi kommer inn på hvordan vi gjør det med StandardDict -objektet.

IF-Else-setningen brukes i den gitte koden for å redegjøre for muligheten for at nøkkelen mangler i vår ordbok.

Ved hjelp av standarddikten kan vi forenkle dette. Selv om nøklene våre ikke tidligere eksisterte, kan vi trygt øke dem og opprette et heltall som standardtast.

Her opprettet vi et standarddiktobjekt ved å opprette en omgivende og gi en heltallverdi til det. Som et resultat får verdien en verdi på 0 hvis en nøkkel mangler. På grunn av dette kan vi trygt øke en nøkkelverdi med 1 når vi kommer over en som ikke eksisterer.

Gruppere dataene med standarddict

Standarddict -objektet kan brukes til å gruppere dataene i henhold til andre datastrukturer. Med dette itererer vi over objektene (for eksempel en liste som inneholder tupler, en samling av lister eller en annen ordbok) for å gruppere dataene.

La oss se på et eksempel. Vi kan lage en ordbok med kursene våre som nøkler og navnene på studentene som er påmeldt på hvert kurs som en liste hvis vi har en ordbok med studentnavn og kursene som de studerer.

La oss se på hvordan du gjør dette ved å bruke en standard Python Dictionary først. Deretter implementerer vi dette ved hjelp av standarddict.

Dette er litt komplisert, som vi kan se. Heldigvis forenkler standarddikten dette vesentlig. Vi kan eliminere IF-Else-setningen ved å sette en standardverdi som en tom liste.

Vi kan observere hvor mye enklere det er å forstå dette eksemplet fordi vi ikke trenger å bekymre oss for feilhåndtering. Når en nøkkel mangler, oppretter vår defaultDict alltid en tom liste. Som et resultat er det enkelt å legge til nøkkens verdi og vi trenger ikke å bekymre oss for å heve nøkkelringene.

Akkumulerer dataene ved å bruke standarddikten

Vi akkumulerer nå dataene ved hjelp av Pythons standarddict. Det er tilfeller når du trenger å bestemme den totale summen av verdiene/dataene i en samling eller sekvens. Anta at du har dataene om varer som ble solgt i en butikk. La oss først lagre dataene som en liste over tupleobjekter:

Vi kan bestemme det totale salget for hvert produkt ved å bruke disse dataene. Vi kan oppnå at ved å bruke standarddikten med flottørsettet som "standardfabrikk".

For å iterere over varene, konstruerte vi en for loop. Salget per ordbokvare beregnes ved hjelp av en forsterket oppdragsoperatør (+=). Den andre sløyfen skriver ut salget etter å ha iterert gjennom Defdict -varene.

Konklusjon

Den nødvendige informasjonen om standardDICT -objektet i Python og hvordan du kan bruke den var som dekket i denne opplæringen. Du lærte først om oppførselen til Python -ordbøker når nøklene mangler. Deretter lærte du hvordan du spesifiserer standardverdiene ved å bruke Python StandardDict. Vi diskuterte hvordan de manglende nøklene kan håndteres ved hjelp av StandardDict. Vi lærte at standarddiktens objekt kan brukes til å samle, akkumulere og telle data.