Ordbok i Python med syntax och exempel
Vad är en ordbok i Python?
A Ordbok i Python är den oordnade och föränderliga samlingen av datavärden som innehåller nyckel-värdepar. Varje nyckel-värdepar i ordboken mappar nyckeln till dess tillhörande värde vilket gör den mer optimerad. En ordbok i python deklareras genom att bifoga en kommaseparerad lista med nyckel-värdepar med hjälp av krulliga klammerparenteser({}). Python Ordboken klassificeras i två delar: Nycklar och Värden.
- Nycklar kommer att vara ett enda element
- Värden kan vara en lista eller lista i en lista, siffror osv.
Syntax för Python Ordbok
Dict = { ' Tim': 18, xyz,.. }
Ordboken är listad inom parentes, inom dessa parenteser deklareras nycklar och värden. Varje nyckel separeras från sitt värde med ett kolon (:), medan kommatecken separerar varje element.
Egenskaper för ordboksnycklar
Det finns två viktiga punkter när du använder ordboksnycklar
- Mer än en post per nyckel är inte tillåten (ingen dubblettnyckel är tillåten)
- Värdena i ordboken kan vara av vilken typ som helst, medan nycklarna måste vara oföränderliga som siffror, tupler
- Ordboksnycklar är skiftlägeskänsliga - Samma nyckelnamn men med de olika skiftlägen behandlas som olika nycklar i Python ordböcker.
Python 2 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print (Dict['Tiffany'])
Python 3 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print((Dict['Tiffany']))
- I koden har vi ordboksnamnet "Dict"
- Vi deklarerade namnet och åldern på personen i ordboken, där namnet är "Nycklar" och ålder är "värdet"
- Kör nu koden
- Den hämtar tiffanys ålder från ordboken.
Python Ordboksmetoder
Kopiera ordbok
Du kan också kopiera hela ordboken till en ny ordbok. Här har vi till exempel kopierat vår ursprungliga ordbok till det nya ordboksnamnet "Pojkar" och "Flickor".
Python 2 Exempel
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 Exempel
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 ursprungliga ordboken (Dict) med namn och ålder på pojkarna och flickorna tillsammans
- Men vi vill ha en pojklista separat från flicklista, så vi definierade elementet för pojkar och flickor i ett separat ordboksnamn "Pojkar" och "Flickor."
- Nu har vi återigen skapat ett nytt ordboksnamn "elev X" och "elev Y", där alla nycklar och värden i pojklexikonet kopieras till elev X, och flickorna kommer att kopieras i studentY
- Så nu behöver du inte titta i hela listan i huvudordboken( Dict) för att kolla vem som är en pojke och vem som är tjej, du behöver bara skriva ut elev X om du vill ha pojklista och StudentY om du vill ha tjejlista
- Så när du kör student X och studentY ordbok, kommer det att ge alla element som finns i ordboken för "pojkar" och "flickor" separat
Uppdaterar ordbok
Du kan också uppdatera en ordbok genom att lägga till en ny post eller ett nyckel-värdepar till en befintlig post eller genom att ta bort en befintlig post. Här i exemplet kommer vi att lägga till ett annat namn, "Sarah" till vår befintliga ordbok.
Python 2 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Dict.update({"Sarah":9}) print Dict
Python 3 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Dict.update({"Sarah":9}) print(Dict)
- Vår befintliga ordbok "Dict" har inte namnet "Sarah."
- Vi använder metoden Dict.update för att lägga till Sarah i vår befintliga ordbok
- Kör nu koden, den lägger till Sarah i vår befintliga ordbok
Ta bort nycklar från ordboken
Python ordbok ger dig friheten att ta bort alla element från ordbokslistan. Anta att du inte vill ha namnet Charlie i listan, så du kan ta bort nyckelelementet med följande kod.
Python 2 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} del Dict ['Charlie'] print Dict
Python 3 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} del Dict ['Charlie'] print(Dict)
När du kör den här koden ska den skriva ut ordbokslistan utan Charlie.
- Vi använde koden del Dict
- När koden körs har den raderat Charlie från huvudordboken
Ordbok objekt() Metod
Metoden items() returnerar en lista med tuppelpar (Nycklar, Värde) i ordboken.
Python 2 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "Students Name: %s" % Dict.items()
Python 3 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("Students Name: %s" % list(Dict.items()))
- Vi använder metoden code items() för vår Dict.
- När koden kördes returnerar den en lista med objekt (nycklar och värden) från ordboken
Kontrollera om en viss nyckel redan finns i en ordlista
För en given lista kan du också kontrollera om vår barnordbok finns i huvudordboken eller inte. Här har vi två underordböcker "Pojkar" och "Tjejer", nu vill vi kontrollera om vår ordbok Pojkar finns i vår huvudordbok eller inte. För det använder vi metoden for loop med metoden else if.
Python 2 Exempel
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 Exempel
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)
- Ocuco-landskapet forloop i kod kontrollerar varje nyckel i huvudordboken för pojknycklar
- Om det finns i huvudordboken ska det skrivas ut sant eller så ska det skrivas ut falskt
- När du kör koden kommer den att skriva ut "True" tre gånger, eftersom vi har tre element i vår "Boys"-ordbok
- Så det indikerar att "pojkarna" finns i vår huvudordbok (Dict)
Sortera ordboken
I ordboken kan du också sortera elementen. Om vi till exempel vill skriva ut namnet på elementen i vår ordbok alfabetiskt måste vi använda för en slinga. Det kommer att sortera varje element i ordboken därefter.
Python 2 Exempel
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 Exempel
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 förklarade variabeln elever för vår ordbok "Dict."
- Sedan använder vi koden Students.sort, som kommer att sortera elementet i vår ordbok
- Men för att sortera varje element i ordboken kör vi for en loop genom att deklarera variabeln S
- Nu, när vi kör koden, kommer for-loopen att anropa varje element från ordboken, och den kommer att skriva ut strängen och värdet i en ordning
Python Ordbok inbyggda funktioner
Ordbok len() Metod
Funktionen len() anger antalet par i ordboken.
Till exempel,
Python 2 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "Length : %d" % len (Dict)
Python 3 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("Length : %d" % len (Dict))
När len (Dict)-funktionen exekveras ger den utdata vid "4" eftersom det finns fyra element i vår ordbok
Variabla typer
Python kräver inte att explicit deklarera reservminnesutrymmet; det sker automatiskt. Tilldela värden till variabeln "=" likhetstecken används. Koden för att bestämma variabeltypen är " %type (Dict)."
Python 2 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "variable Type: %s" %type (Dict)
Python 3 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("variable Type: %s" %type (Dict))
- Använd koden %type för att känna till variabeltypen
- När koden kördes säger den att en variabeltyp är en ordbok
Python Lista cmp() metod
Jämförmetoden cmp() används i Python att jämföra värden och nycklar för två ordböcker. Om metoden returnerar 0 om båda ordlistorna är lika, 1 om dic1 > dict2 och -1 om dict1 < dict2.
Python 2 Exempel
Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} print cmp(Girls, Boys)
Python 3 Exempel
cmp is not supported in Python 3
- Vi har två ordboksnamn, "Pojkar" och "Flickor."
- Vad du än deklarerar först i koden "cmp(Girls, Boys)" kommer att betraktas som ordbok 1. I vårt fall deklarerade vi "Girls" först, så det kommer att betraktas som ordbok 1 och pojkar som ordbok 2
- När koden körs skrivs den ut -1, det indikerar att vår ordbok 1 är mindre än ordbok 2.
Ordbok Str(dict)
Med metoden Str() kan du göra en ordbok till ett utskrivbart strängformat.
Python 2 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "printable string:%s" % str (Dict)
Python 3 Exempel
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("printable string:%s" % str (Dict))
- Använd koden % str (Dict)
- Det kommer att returnera ordbokselementen till ett utskrivbart strängformat
Här är listan över alla ordboksmetoder
Metod | Systembeskrivningar | syntax |
---|---|---|
kopiera() | Kopiera hela ordboken till ny ordbok | dict.copy() |
uppdatering() | Uppdatera en ordbok genom att lägga till en ny post eller ett nyckel-värdepar till en befintlig post eller genom att ta bort en befintlig post. | Dict.update([other]) |
föremål () | Returnerar en lista med tuppelpar (nycklar, värde) i ordboken. | dictionary.items() |
sortera() | Du kan sortera elementen | dictionary.sort() |
len () | Anger antalet par i ordboken. | len (dikt) |
cmp() | Jämför värdena och nycklarna i två ordböcker | cmp(dict1, dict2) |
Str() | Gör en ordbok till ett utskrivbart strängformat | Str(dict) |
Sammanfoga ordböcker
Här kommer att förstå hur man slår samman två givna ordböcker till en enda ordbok.
Jag har två ordböcker som visas nedan:
Ordbok1 : min_dikt1
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
Ordbok 2 : min_dikt2
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
Låt oss slå samman båda dessa ordböcker my_dict1 och my_dict2 och skapa en enda ordbok med namemy_dict.
Slå samman två ordböcker med metoden update().
Metoden update() hjälper oss att slå samman en ordbok med en annan. I exemplet kommer vi att uppdatera min_dikt1 med min_dikt2. Efter att ha använt update()-metoden kommer my_dict1 att ha innehållet i my_dict2 som visas nedan:
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"} my_dict2 = {"firstName" : "Nick", "lastName": "Price"} my_dict1.update(my_dict2) print(my_dict1)
Produktion:
{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
Slå samman ordböcker med **-metoden (Från Python 3.5 och framåt)
** heter Kwargs in Python, och det kommer att fungera med Python version 3.5+. Med ** kan vi slå samman två ordböcker, och det kommer att returnera den sammanslagna ordboken. Att använda ** framför variabeln kommer att ersätta variabeln med allt dess innehåll.
Här är ett fungerande exempel på att använda ** för att slå samman två kataloger.
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)
Produktion:
{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
Ordbok medlemstest
Du kan testa om en nyckel i nuet i en ordbok eller inte. Detta test kan endast utföras på nyckeln till en ordbok och inte värdet. Medlemstestet görs med hjälp av in nyckelord. När du kontrollerar nyckeln i ordboken med hjälp av in nyckelord, returnerar uttrycket sant om nyckeln finns och falskt om inte.
Här är ett exempel som visar medlemsskapstest på en ordbok.
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)
Produktion:
True True False
Sammanfattning
- Ordböcker på ett programmeringsspråk är en typ av datastruktur som används för att lagra information kopplad på något sätt.
- Python Ordboken är definierad i två element Nycklar och Värden.
- Ordböcker lagrar inte sin information i någon speciell ordning, så du kanske inte får tillbaka din information i samma ordning som du skrev in den.
- Nycklar kommer att vara ett enda element
- Värden kan vara en lista eller lista i en lista, siffror osv.
- Mer än en post per nyckel är inte tillåten (ingen dubblettnyckel är tillåten)
- Värdena i ordboken kan vara av vilken typ som helst, medan nycklarna måste vara oföränderliga som siffror, tupler eller strängar.
- Ordboksnycklar är skiftlägeskänsliga - Samma nyckelnamn men med de olika skiftlägen behandlas som olika nycklar i Python ordböcker.