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.

Syntax för Python Ordbok

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.