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 Dictionary 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, numbersOsv

Syntaks for Python Dictionary

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

Ordbog er opført i krøllet brackets, inde i disse krøllede brackets, nøgler og værdier erklæres. Hver nøgle er adskilt fra dens værdi med et kolon (:), mens kommaer adskiller hvert element.

Syntaks for Python Dictionary

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 numbers, 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 ordbog metoder

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-ordbogen giver dig friheden til at slette ethvert element fra ordbogslisten. Antag, at du ikke vil have navnet Charlie på listen, så du kan fjerne nøgleelementet ved at følge folloenwing 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 Dictionary 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 erklære 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 List cmp() Metode

Sammenligningsmetoden cmp() bruges i Python til 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": "xyz@gmail.com", "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": "xyz@gmail.com", "location":"Mumbai"}

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

my_dict1.update(my_dict2)

print(my_dict1)

Output:

{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Sammenlægning af ordbøger ved hjælp af **-metoden (fra Python 3.5 og frem)

** kaldes Kwargs i 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": "xyz@gmail.com", "location":"Mumbai"}

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

my_dict =  {**my_dict1, **my_dict2} 

print(my_dict)

Output:

{'username': 'XYZ', 'email': 'xyz@gmail.com', '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": "xyz@gmail.com", "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 Dictionary 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, numbersOsv
  • 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 numbers, 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.