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.
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 | Description | 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)
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": "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 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.