
Lesley Fowler
0
990
105
En python-ordbog er en datastruktur, der ligner en tilknyttet matrix, der findes i andre programmeringssprog. En matrix eller en liste indekserer elementer efter position. En ordbog indekserer på den anden side elementer efter nøgler som kan være strenge. Tænk på en ordbog som uordnede sæt af nøgleværdier par.
I denne artikel introducerer vi dig til at arbejde med python-ordbogen.
Oprettelse af en ordbog
Der er flere måder at oprette en python-ordbog på. Den enkleste bruger brace-initialisering, med en syntaks, der minder om JSON Hvordan man får Python og JavaScript til at kommunikere ved hjælp af JSON Sådan får man Python og JavaScript til at kommunikere ved hjælp af JSON I dag viser jeg dig, hvordan du bruger JSON til at sende data fra JavaScript til Python . Jeg vil dække, hvordan du opsætter en webserver sammen med al den kode, du har brug for. .
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27
Du kan også bruge tal som taster. Vær dog forsigtig med at bruge flydende numre som taster, da computeren gemmer disse som tilnærmelser Alt hvad du behøver at vide om RAM og hukommelsesstyring Alt hvad du behøver at vide om RAM og hukommelsesstyring RAM er din computers kortvarige hukommelse. Hukommelsesadministration har derfor en betydelig indflydelse på systemets ydelse. Her forklarer vi, hvordan RAM fungerer, og om du kan gøre noget for at øge dens effektivitet. .
rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' print rain_percent print rain_percent [1980] # udskrifter 1980: '17%', 1981: '15% ', 1982: '10% ' 17%
Specificering af nøgleværdipar
Du kan også oprette og initialisere en ordbog ved hjælp af navneværdipar som nøgleordsargumenter til dict () konstruktør.
befolkning = dict (Californien = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) udskriv befolkning # udskrifter 'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196
Array af nøgleværdi tuples
Endnu en måde at oprette en ordbog på er at bruge en række nøgleværdier. Her er det samme eksempel som ovenfor.
par = [('Californien', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] befolkning = dict (par) udskriv population # udskriv 'Connecticut': 3574097, 'Delaware': 897934, 'Californien': 37253956, 'Colorado': 5029196
Diktforståelse
Diktforståelse giver en cool syntaks til at initialisere et dikte, hvis du kan beregne værdierne baseret på tasterne. Følgende initialiserer et dikter af tal og firkantede værdier for en række numre.
udskriv x: x ** 2 til x i xrange (10, 20) # udskrifter 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17 : 289, 18: 324, 19: 361
Hvordan virker det? Sidste del (for x i xrange (10, 20)) returnerer et interval af numre i det specificerede interval. Delens forståelsesdel (x: x ** 2…) løkker over dette interval og initialiserer ordbogen.
Arbejde med en Python-ordbog
Hvad kan du gøre med ordbøger, når du først har oprettet dem? Nå, du kan få adgang til elementer, opdatere værdier, slette elementer osv.
Adgang til Python Dictionary Elements
Få adgang til et element af et dikter ved hjælp af nøglen inden for parenteser, ligesom du ville gøre et array eller en liste Hvordan Arrays and Lists Work in Python How Arrays and Lists Work in Python Arrays and lister er nogle af de mest nyttige datastrukturer i programmering skønt få mennesker bruger dem til deres fulde potentiale. .
printpopulation ['Delaware'] # udskrifter 897934
Hvis nøglen er et tal, har du ikke brug for tilbud. Udtrykket ser så ud til at se ud som en liste eller arrayindeksering.
print rain_percent [1980] # udskrifter 17%
Tastens type, når du får adgang til den, skal svare til det, der er gemt i Python-ordbogen. Følgende forårsager en fejl, da de gemte taster er numre, mens adgangstasten er en streng.
x = '1980' print rain_percent [x] # resulterer i 1 x = '1980' ----> 2 print rain_percent [x] KeyError: '1980'
Adgang til en ikke-eksisterende nøgle er en fejl.
rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' print rain_percent [1983] # udskrifter 1 rain_percent = 1980: '17%', 1981: '15% ', 1982 : '10% ' ----> 2 print rain_percent [1983] KeyError: 1983
For at få adgang til en nøgle og give en standardværdi, hvis kortlægningen ikke findes, skal du bruge få() metode med standardværdi som det andet argument.
print rain_percent.get (1985, '0%') # udskrifter 0%
Kontroller for eksistens
Hvad hvis du vil tjekke for tilstedeværelsen af en nøgle uden faktisk at forsøge at få adgang til den (og muligvis støde på en KeyError som ovenfor)? Du kan bruge i nøgleord i formen nøgle i dct som returnerer en boolsk.
print 1980 i rain_percent print '1980' in rain_percent # udskriv True False
Vend betingelsen (dvs. sørg for, at nøglen ikke findes i Python-ordbogen) ved hjælp af formularen nøgle ikke i dct. Dette svarer til standard python negation ikke indtast dct.
print 1980 ikke i rain_percent print 1985 ikke i rain_percent # udskriv Falsk True
Ændring af elementer
Skift værdien ved at tildele den krævede nøgle.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 brugere ['alder'] = 29 trykte brugere # udskriver 'efternavn': 'Smith', 'alder': 29, 'fornavn': 'John'
Brug den samme syntaks til at tilføje en ny kortlægning til Python-ordbogen.
brugere ['dob'] = '15 -sep-1971 'udskriv brugere # udskriver ' dob ': '15 -sep-1971', 'efternavn': 'Smith', 'alder': 29, 'fornavn': ' John'
Opdater flere elementer i en ordbog i et billede ved hjælp af opdatering () metode.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 brugere.update ('alder': 29, 'dob': '15 -sep-1971 ') print brugere # udskriver 'dob': '15 -sep-1971 ',' efternavn ':' Smith ',' alder ': 29,' fornavn ':' John '
Indstil en standardværdi for en nøgle vha sæt standard(). Denne metode indstiller værdien for nøglen, hvis kortlægningen ikke findes. Den returnerer den aktuelle værdi.
# ændrer ikke den aktuelle værdi udskriv brugere.setdefault ('fornavn', 'Jane') # udskriver John # sætter værdien udskriv brugere.setdefault ('by', 'NY') # udskriver NY # Endelig værdi udskriv brugere # udskriver ' efternavn ':' Smith ',' alder ': 27,' fornavn ':' John ',' by ':' NY '
Sletning af elementer
Slet kortlægninger i ordbogen ved hjælp af del operatør. Denne operatør returnerer ikke noget.
Du vil støde på en KeyError hvis nøglen ikke findes i ordbogen.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 del brugere ['alder'] udskrive brugere # udskriver 'efternavn': 'Smith', 'fornavn': ' John'
Brug pop () metode i stedet, når du vil have den slettede værdi tilbage.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 udskriv brugere.pop ('alder') udskriv brugere # udskriver 27 'efternavn': 'Smith', 'fornavn ': 'John'
Hvad hvis du vil slette en nøgle, hvis den findes, uden at forårsage en fejl, hvis den ikke gør det? Du kan bruge pop () og specificer Ingen for andet argument som følger:
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 brugere.pop ('foo', Ingen) udskriver brugere # udskriver 'efternavn': 'Smith', 'alder ': 27,' fornavn ':' John '
Og her er en foring til at slette en masse nøgler fra en ordbog uden at forårsage en fejl på ikke-eksisterende nøgler.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27, 'dob': '15 -sep-1971 ' kort (lambda x: brugere.pop (x, ingen) , ['alder', 'foo', 'dob']) printbrugere
Vil du slette alle nøgler fra en ordbog? Brug klar() metode.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 brugere.clear () udskriv brugere # udskriv
Looping With Python ordbøger
Python giver mange metoder til looping Sådan fungerer looper i computerprogrammering Sådan gør looper arbejde i computerprogrammering Loops er en af de første kontroltyper, du lærer i programmering. Du ved sandsynligvis om mens og til sløjfer, men hvad opnår en do-while-loop? over indgange i en ordbog. Vælg en der passer til dit behov.
Looping over nøgler
- Den enkleste metode til behandling af nøgler (og muligvis værdier) i rækkefølge bruger en løkke af formen:
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 for k i brugere: print k, '=>', brugere [k] # udskriver efternavn => Smith age = > 27 fornavn => John
- Ved hjælp af metoden iterkeys () fungerer nøjagtigt det samme som ovenfor. Vælg, hvilken form du vil bruge.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 for k i users.iterkeys (): print k, '=>', brugere [k] # udskriver efternavn = > Smith alder => 27 fornavn => John
- En tredje metode til at hente og behandle nøgler i en løkke involverer brug af den indbyggede funktion iter ().
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 for k i iter (brugere): print k, '=>', brugere [k] # udskriver efternavn => Smith alder => 27 fornavn => John
- Når du har brug for indekset for nøglen, der behandles, skal du bruge opregne () indbygget funktion som vist.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 for indeks, indtast tæller (brugere): udskriv indeks, nøgle, '=>', brugere [k] # udskriver 0 efternavn => John 1 alder => John 2 fornavn => John
Looping over nøgleværdipar
- Når du vil hente hvert nøgleværdipar med et enkelt opkald, skal du bruge iteritems ().
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 for k, v i brugere.iteritems (): print k, '=>', v # udskriver efternavn => Smith alder => 27 fornavn => John
Itererer over værdier
- Metoden itervalues () kan bruges til at itereere over alle værdier i ordbogen. Selvom denne metode ligner en sløjfe ved hjælp af værdier (), det er mere effektivt, da det ikke trækker ud alle værdierne på én gang.
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 for værdi i users.itervalues (): udskrivningsværdi # udskriver Smith 27 John
Udtræk af arrays
De følgende metoder beskriver ekstraktion af forskellige Python-ordbogsinformation i en matrixform. Den resulterende matrix kan sløjpes sammen ved hjælp af normale pythonkonstruktioner. Husk dog, at det returnerede array kan være stort afhængigt af størrelsen på ordbogen. Så det kan være mere dyre (hukommelsesmæssigt) at behandle disse arrays end ved at bruge iterator-metoderne ovenfor.
Et tilfælde, hvor det er acceptabelt at arbejde med disse arrays, er, når du har brug for at slette elementer fra ordbogen, da du støder på uønskede elementer. Arbejde med en iterator, mens du ændrer ordbogen, kan forårsage en RuntimeError.
- Metoden poster () returnerer en matrix med nøgleværdi tupler. Du kan iterere over disse nøgleværdipar som vist:
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 for k, v i users.items (): print k, '=>', v # udskriver efternavn => Smith alder => 27 fornavn => John
- Hent alle nøgler i ordbogen ved hjælp af metoden nøgler ().
brugere = 'fornavn': 'John', 'efternavn': 'Smith', 'alder': 27 udskriv brugere.taster () # udskrifter ['efternavn', 'alder', 'fornavn']
Brug det returnerede array til at sløjfe over tasterne.
til k i brugere.taster (): udskriv k, '=>', brugere [k] # udskriver efternavn => Smith alder => 27 fornavn => John
- Brug metoden på en lignende måde værdier () for at hente alle værdier i ordbogen.
for værdi i brugere.værdier (): udskrivningsværdi # udskriver Smith 27 John
Hvordan bruger du Python-ordbøger?
Vi har forsøgt at dække de mest almindelige brugssager for pythonordbøger i denne artikel. Sørg for at tjekke alle vores andre Python-artikler 10 grundlæggende Python-eksempler, der vil hjælpe dig med at lære hurtigt 10 grundlæggende Python-eksempler, der vil hjælpe dig med at lære hurtigt Denne artikel med grundlæggende pythoneksempler er til dem, der allerede har en vis programmeringserfaring og blot ønsker at overgang til Python så hurtigt som muligt. for endnu flere Python-tip 5 Kurser, der tager dig fra Python Beginner til Pro 5 Kurser, der vil tage dig fra Python Beginner til Pro Disse fem kurser lærer dig alt om programmering i Python, et af de hotteste sprog derude lige nu. . Hvis du har andre brugssager, som du mener skal inkluderes, så lad os vide det i kommentarerne herunder!
Billedkreditter: viper345 / Shutterstock