Ordbog i Python med syntaks og eksempel

Hvad er en ordbog i Python?

A Ordbog i Python er den uordnede og foranderlige samling af datavรฆrdier, der indeholder nรธgle-vรฆrdi-par. Hvert nรธgle-vรฆrdi-par i ordbogen kortlรฆgger nรธglen til dens tilknyttede vรฆrdi, hvilket gรธr den mere optimeret. En ordbog i python erklรฆres ved at omslutte en kommasepareret liste over nรธglevรฆrdi-par ved hjรฆlp af krรธllede klammeparenteser({}). Python Ordbog er klassificeret i to elementer: Nรธgler og vรฆrdier.

  • Nรธgler vil vรฆre et enkelt element
  • Vรฆrdier kan vรฆre en liste eller liste i en liste, tal osv.

Syntaks for Python ordbog

Dict = { ' Tim': 18,  xyz,.. }

Ordbog er angivet i krรธllede parenteser, inden for disse krรธllede parenteser er nรธgler og vรฆrdier erklรฆret. Hver nรธgle er adskilt fra dens vรฆrdi med et kolon (:), mens kommaer adskiller hvert element.

Syntaks for Python ordbog

Egenskaber for ordbogsnรธgler

Der er to vigtige punkter, nรฅr du bruger ordbogsnรธgler

  • Mere end รฉn indtastning pr. nรธgle er ikke tilladt (ingen dubletnรธgle er tilladt)
  • Vรฆrdierne i ordbogen kan vรฆre af enhver type, mens tasterne skal vรฆre uforanderlige ligesom tal, tupler
  • Ordbogsnรธgler skelner mellem store og smรฅ bogstaver - Samme nรธglenavn, men med de forskellige tilfรฆlde behandles som forskellige nรธgler i Python ordbรธger.

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}   
print (Dict['Tiffany'])

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}   
print((Dict['Tiffany']))
  • I koden har vi ordbogsnavnet "Dict"
  • Vi erklรฆrede navnet og alderen pรฅ personen i ordbogen, hvor navnet er "Nรธgler" og alder er "vรฆrdien"
  • Kรธr nu koden
  • Den henter tiffanys alder fra ordbogen.

Python Ordbogsmetoder

Kopiering af ordbog

Du kan ogsรฅ kopiere hele ordbogen til en ny ordbog. For eksempel har vi her kopieret vores originale ordbog til det nye ordbogsnavn "Drenge" og "Piger".

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
studentX=Boys.copy()
studentY=Girls.copy()
print studentX
print studentY

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
studentX=Boys.copy()
studentY=Girls.copy()
print(studentX)
print(studentY)
  • Vi har den originale ordbog (Dict) med navn og alder pรฅ drengene og pigerne sammen
  • Men vi vil have en drengeliste adskilt fra en pigeliste, sรฅ vi definerede elementet af drenge og piger i et separat ordbogsnavn "Drenge" og "Piger."
  • Nu har vi igen lavet et nyt ordbogsnavn "elev X" og "elev Y", hvor alle nรธglerne og vรฆrdierne i drengeordbogen er kopieret ind i elev X, og pigerne vil blive kopieret i elev Y
  • Sรฅ nu behรธver du ikke at kigge i hele listen i hovedordbogen( Dict) for at tjekke hvem der er en dreng og hvem der er pige, du skal bare udskrive elev X hvis du vil have drengeliste og StudentY hvis du vil have pigeliste
  • Sรฅ nรฅr du kรธrer elev X og studentY ordbog, vil den give alle de elementer, der findes i ordbogen over "drenge" og "piger" separat

Opdatering af ordbog

Du kan ogsรฅ opdatere en ordbog ved at tilfรธje en ny post eller et nรธgle-vรฆrdi-par til en eksisterende post eller ved at slette en eksisterende post. Her i eksemplet vil vi tilfรธje et andet navn, "Sarah" til vores eksisterende ordbog.

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Dict.update({"Sarah":9})
print Dict

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Dict.update({"Sarah":9})
print(Dict)
  • Vores eksisterende ordbog "Dict" har ikke navnet "Sarah."
  • Vi bruger metoden Dict.update til at tilfรธje Sarah til vores eksisterende ordbog
  • Kรธr nu koden, den tilfรธjer Sarah til vores eksisterende ordbog

Slet nรธgler fra ordbogen

Python ordbog giver dig frihed til at slette ethvert element fra ordbogslisten. Antag, at du ikke vil have navnet Charlie pรฅ listen, sรฅ du kan fjerne nรธgleelementet med fรธlgende kode.

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
del Dict ['Charlie']
print Dict

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
del Dict ['Charlie']
print(Dict)

Nรฅr du kรธrer denne kode, bรธr den udskrive ordbogslisten uden Charlie.

  • Vi brugte koden del Dict
  • Nรฅr koden er udfรธrt, har den slettet Charlie fra hovedordbogen

Ordbogsartikler() Metode

items()-metoden returnerer en liste over tupelpar (nรธgler, vรฆrdi) i ordbogen.

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "Students Name: %s" % Dict.items()

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("Students Name: %s" % list(Dict.items()))
  • Vi bruger metoden code items() til vores Dict.
  • Nรฅr koden blev udfรธrt, returnerer den en liste over elementer (nรธgler og vรฆrdier) fra ordbogen

Tjek, om en given nรธgle allerede findes i en ordbog

For en given liste kan du ogsรฅ kontrollere, om vores bรธrneordbog findes i hovedordbogen eller ej. Her har vi to underordbรธger "Drenge" og "Piger", nu vil vi kontrollere, om vores ordbog Drenge findes i vores primรฆre "Dict" eller ej. Til det bruger vi for loop-metoden med else if-metoden.

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in Boys.keys():
    if key in Dict.keys():
        print True
    else:       
        print False


Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in list(Boys.keys()):
    if key in list(Dict.keys()):
        print(True)
    else:       
        print(False)
  • forloop i kode tjekker hver tast i hovedordbogen for drengenรธgler
  • Hvis det findes i hovedordbogen, skal det udskrives sandt, ellers skal det udskrives falsk
  • Nรฅr du udfรธrer koden, vil den udskrive "True" tre gange, da vi har tre elementer i vores "Boys"-ordbog
  • Sรฅ det indikerer, at "drengene" findes i vores hovedordbog (Dict)

Sortering af ordbogen

I ordbogen kan du ogsรฅ sortere elementerne. For eksempel, hvis vi รธnsker at udskrive navnet pรฅ elementerne i vores ordbog alfabetisk, skal vi bruge for en lรธkke. Det vil sortere hvert element i ordbogen i overensstemmelse hermed.

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = Dict.keys()
Students.sort()
for S in Students:
      print":".join((S,str(Dict[S])))

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = list(Dict.keys())
Students.sort()
for S in Students:
      print(":".join((S,str(Dict[S]))))
  • Vi erklรฆrede variablen elever til vores ordbog "Dict."
  • Sรฅ bruger vi koden Students.sort, som vil sortere elementet inde i vores ordbog
  • Men for at sortere hvert element i ordbogen kรธrer vi for en lรธkke ved at erklรฆre variabel S
  • Nรฅr vi nu udfรธrer koden, vil for-lรธkken kalde hvert element fra ordbogen, og det vil udskrive strengen og vรฆrdien i en rรฆkkefรธlge

Python Ordbogs indbyggede funktioner

Ordbog len() Metode

Funktionen len() angiver antallet af par i ordbogen.

For eksempel:

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "Length : %d" % len (Dict)

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("Length : %d" % len (Dict))

Nรฅr len (Dict)-funktionen udfรธres, giver den output ved "4", da der er fire elementer i vores ordbog

Variable typer

Python krรฆver ikke eksplicit at deklarere reservehukommelsespladsen; det sker automatisk. Tildelingsvรฆrdierne til variablen "=" lighedstegn bruges. Koden til at bestemme variabeltypen er " %type (Dict)."

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "variable Type: %s" %type (Dict)

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("variable Type: %s" %type (Dict))
  • Brug koden %type for at kende variabeltypen
  • Nรฅr koden blev udfรธrt, fortรฆller den, at en variabeltype er en ordbog

Python Liste cmp() metode

Sammenligningsmetoden cmp() bruges i Python at sammenligne vรฆrdier og nรธgler i to ordbรธger. Hvis metoden returnerer 0 hvis begge ordbรธger er ens, 1 hvis dic1 > dict2 og -1 hvis dict1 < dict2.

Python 2 Eksempel

Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
print cmp(Girls, Boys)

Python 3 Eksempel

cmp is not supported in Python 3
  • Vi har to ordbogsnavne, "Drenge" og "Piger."
  • Uanset hvad du erklรฆrer fรธrst i koden "cmp(Girls, Boys)" vil blive betragtet som ordbog 1. I vores tilfรฆlde erklรฆrede vi "Girls" fรธrst, sรฅ det vil blive betragtet som ordbog 1 og drenge som ordbog 2
  • Nรฅr koden udfรธres, udskriver den -1. Det indikerer, at vores ordbog 1 er mindre end ordbog 2.

Ordbog Str(dict)

Med Str()-metoden kan du lave en ordbog til et udskrivbart strengformat.

Python 2 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "printable string:%s" % str (Dict)

Python 3 Eksempel

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("printable string:%s" % str (Dict))
  • Brug koden % str (Dict)
  • Det vil returnere ordbogselementerne til et udskrivbart strengformat

Her er listen over alle ordbogsmetoder

Metode Beskrivelse Syntaks
kopi() Kopier hele ordbogen til ny ordbog dict.copy()
opdater () Opdater en ordbog ved at tilfรธje en ny post eller et nรธgle-vรฆrdi-par til en eksisterende post eller ved at slette en eksisterende post. Dict.update([other])
varer () Returnerer en liste over tupelpar (nรธgler, vรฆrdi) i ordbogen. dictionary.items()
sortere() Du kan sortere elementerne dictionary.sort()
len () Angiver antallet af par i ordbogen. len (dict)
cmp() Sammenlign vรฆrdierne og nรธglerne i to ordbรธger cmp(dikt1, dikt2)
Str() Lav en ordbog til et udskrivbart strengformat Str(dikt)

Sammenlรฆgning af ordbรธger

Her vil du forstรฅ, hvordan du flette to givne ordbรธger til en enkelt ordbog.

Jeg har to ordbรธger som vist nedenfor:

Ordbog1 : min_dikt1

my_dict1 = {"username": "XYZ", "email": "[email protected]", "location":"Mumbai"}

Ordbog 2 : min_dikt2

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

Lad os flette begge disse ordbรธger my_dict1 og my_dict2 og skabe en enkelt ordbog med namemy_dict.

Flet to ordbรธger ved hjรฆlp af update()-metoden

Update()-metoden hjรฆlper os med at flette en ordbog med en anden. I eksemplet vil vi opdatere my_dict1 med my_dict2. Efter brug af update()-metoden vil my_dict1 have indholdet af my_dict2 som vist nedenfor:

my_dict1 = {"username": "XYZ", "email": "[email protected]", "location":"Mumbai"}

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

my_dict1.update(my_dict2)

print(my_dict1)

Output:

{'username': 'XYZ', 'email': '[email protected]', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Sammenlรฆgning af ordbรธger ved hjรฆlp af **-metoden (Fra Python 3.5 og frem)

Den ** hedder Kwargs in Python, og det vil fungere med Python version 3.5+. Ved at bruge ** kan vi flette to ordbรธger, og det vil returnere den flettede ordbog. Brug af ** foran variablen vil erstatte variablen med alt dens indhold.

Her er et fungerende eksempel pรฅ brug af ** til at flette to mapper.

my_dict1 = {"username": "XYZ", "email": "[email protected]", "location":"Mumbai"}

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

my_dict =  {**my_dict1, **my_dict2} 

print(my_dict)

Output:

{'username': 'XYZ', 'email': '[email protected]', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Ordbogs medlemsprรธve

Du kan teste, om en nรธgle i nuet i en ordbog eller ej. Denne test kan kun udfรธres pรฅ nรธglen til en ordbog og ikke vรฆrdien. Medlemstesten udfรธres ved hjรฆlp af in sรธgeord. Nรฅr du tjekker nรธglen i ordbogen ved hjรฆlp af in nรธgleord, returnerer udtrykket sand, hvis nรธglen er til stede, og falsk, hvis ikke.

Her er et eksempel, der viser medlemsskabstest pรฅ en ordbog.

my_dict = {"username": "XYZ", "email": "[email protected]", "location":"Mumbai"}
print("email" in my_dict)
print("location" in my_dict)
print("test" in my_dict)

Output:

True
True
False

Resumรฉ

  • Ordbรธger i et programmeringssprog er en type datastruktur, der bruges til at lagre information forbundet pรฅ en eller anden mรฅde.
  • Python Ordbog er defineret i to elementer Nรธgler og Vรฆrdier.
  • Ordbรธger gemmer ikke deres oplysninger i nogen bestemt rรฆkkefรธlge, sรฅ du fรฅr muligvis ikke dine oplysninger tilbage i samme rรฆkkefรธlge, som du indtastede dem.
  • Nรธgler vil vรฆre et enkelt element
  • Vรฆrdier kan vรฆre en liste eller liste i en liste, tal osv.
  • Mere end รฉn indtastning pr. nรธgle er ikke tilladt (ingen dubletnรธgle er tilladt)
  • Vรฆrdierne i ordbogen kan vรฆre af enhver type, mens tasterne skal vรฆre uforanderlige som tal, tupler eller strenge.
  • Ordbogsnรธgler skelner mellem store og smรฅ bogstaver - Samme nรธglenavn, men med de forskellige tilfรฆlde behandles som forskellige nรธgler i Python ordbรธger.

Opsummer dette indlรฆg med: