Python ordningar

Ordbok (Dictionary)

Ordbok är en oordnad, flytande och indexbar samling. I Python skrivs ordboken med kolon, och har nycklar och värden.

Exempel

Skapa och skriv ut ordbok:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
print(thisdict)

Kör Exempel

Komma åt objekt

Du kan komma åt objektet genom att referera till dess nyckelnamn inom klamrar:

Exempel

Hämta värdet för nyckeln 'model':

x = thisdict["model"]

Kör Exempel

Det finns också en metod som kallas get() Metoden ger dig samma resultat:

Exempel

Hämta värdet för nyckeln 'model':

x = thisdict.get("model")

Kör Exempel

Ändra värde

Du kan ändra värdet för ett specifikt objekt genom att referera till dess nyckelnamn:

Exempel

Ändra 'year' till 2019:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["year"] = 2019

Kör Exempel

Traversera ordboken

Du kan använda for När du traverserar ordboken.

När du traverserar ordboken, returneras värdet ordbokens nyckel, men det finns också metoder som returnerar värden.

Exempel

Skriv ut alla nyckelnamn i ordboken en efter en:

for x in thisdict:
  print(x)

Kör Exempel

Exempel

Skriv ut alla värden i ordboken en efter en:

for x in thisdict:
  print(thisdict[x])

Kör Exempel

Exempel

Du kan också använda values() Funktionen returnerar ordbokens värden:

for x in thisdict.values():
  print(x)

Kör Exempel

Exempel

Genom att använda items() funktionen kan du traversera nycklar och värden:

for x, y in thisdict.items():
  print(x, y)

Kör Exempel

Kontrollera om nyckeln finns

För att bestämma om en specifik nyckel finns i ordboken, använd: in Nyckel:

Exempel

Kontrollera om 'model' finns i ordboken:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
if "model" in thisdict:
  print("Ja, 'model' är en av nycklarna i thisdict-ordboken")

Kör Exempel

Ordbokslängd

För att bestämma hur många poster (nyckel-värde-par) som finns i ordboken, använd: len() Metod.

Exempel

Skriv ut antalet poster i ordboken:

print(len(thisdict))

Kör Exempel

Lägg till post

Genom att använda en ny nyckel och tilldela den, kan du lägga till poster till ordboken:

Exempel

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["color"] = "red"
print(thisdict)

Kör Exempel

Ta bort post

Det finns flera sätt att ta bort poster från en ordbok:

Exempel

pop() metoden tar bort posten med det specificerade nyckelnamnet:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.pop("model")
print(thisdict)

Kör Exempel

Exempel

popitem() Metoden för att ta bort det sista inskrivna objektet (i versioner innan 3.7, ta bort ett slumpmässigt objekt):

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.popitem()}
print(thisdict)

Kör Exempel

Exempel

del nyckel tar bort objekt med specifik nyckelnamn:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict["model"]
print(thisdict)

Kör Exempel

Exempel

del nyckel kan också helt ta bort ordboken:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict
print(thisdict) #this 会导致错误,因为 "thisdict" 不再存在。

Kör Exempel

Exempel

clear() nyckel tömmer ordboken:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.clear()
print(thisdict)

Kör Exempel

kopiera ordbok

Du kan inte genom att skriva dict2 = dict1 att kopiera ordboken, eftersom:dict2 bara en dict1 citat, medan dict1 ändringar kommer också att automatiskt i dict2 gör detta.

Det finns några metoder för att kopiera, en metod är att använda inbyggda ordboksmetoder copy()

Exempel

Använd copy() metoden för att kopiera ordbok:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = thisdict.copy()
print(mydict)

Kör Exempel

En annan metod att skapa en kopia är att använda inbyggd metod dict()

Exempel

Använd dict() Metoden skapar en kopia av ordboken:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = dict(thisdict)
print(mydict)

Kör Exempel

Nästlade ordböcker

En ordbok kan också innehålla många ordböcker, detta kallas nästlade ordböcker.

Exempel

Skapa en ordbok som innehåller tre ordböcker:

myfamily = {
  "child1" : {
    "name" : "Phoebe Adele",
    "year" : 2002
  },
  "child2" : {
    "name" : "Jennifer Katharine",
    "year" : 1996
  },
  "child3" : {
    "name" : "Rory John",
    "year" : 1999
  }
}

Kör Exempel

Eller om du vill nästla tre redan existerande ordböcker:

Exempel

Skapa tre ordböcker och sedan skapa en ordbok som innehåller de tre andra ordböckerna:

child1 = {
  "name" : "Phoebe Adele",
  "year" : 2002
}
child2 = {
  "name" : "Jennifer Katharine",
  "year" : 1996
}
child3 = {
  "name" : "Rory John",
  "year" : 1999
}
myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

Kör Exempel

dict() konstruktorn

Man kan också använda dict() Konstruktorn skapar ett nytt ordbok:

Exempel

thisdict = dict(brand="Porsche", model="911", year=1963)
# Observera att nyckelordet inte är en sträng
# Observera att använde likhetstecken istället för kolon för tilldelning
print(thisdict)

Kör Exempel

Ordboksmetoder

Python tillhandahåller ett antal inbyggda metoder som kan användas på ordböcker.

Metod Beskrivning
clear() Ta bort alla element från ordboken
copy() Returnera en kopia av ordboken
fromkeys() Returnera ordboken med den specificerade nyckeln och värdet
get() Returnera värdet för den specificerade nyckeln
items() Returnera en lista med tupler som innehåller varje nyckel-värdepar
keys() Returnera en lista som innehåller ordbokens nycklar
pop() Ta bort elementet med den specificerade nyckeln
popitem() Ta bort den sista inskrivna nyckel-värdeparen
setdefault() Returnera värdet för den specificerade nyckeln. Om nyckeln inte finns, lägg till en nyckel med det specificerade värdet.
update() Uppdatera ordboken med specifika nyckel-värdepar
values() Returnera en lista med alla värden i ordboken