Ordbøker og Ordbokmetoder
Ordbøker er kanskje den mest allsidige datastrukturen i Python. De lagrer data som nøkkel-verdi-par og er essensielle i situasjoner hvor data må hentes raskt, og endringer skjer ofte.
I vårt dagligvarescenario kan ordbøker effektivt håndtere leverandørinformasjon, slik at hver leverandør kan nås via navn eller ID uten å måtte søke gjennom en liste.
Se hvordan Alex demonstrerer bruk av ordbøker for vår dagligvarebutikk:
Opprettelse
Ordbøker opprettes ved å omslutte komma-separerte nøkkel-verdi-par med krøllparenteser {}
.
python
Rekkefølge
Ordbøker bevarer rekkefølgen elementene legges inn i, men det er viktig å merke seg at operasjoner vanligvis utføres basert på nøkkel og ikke posisjon.
Mutabilitet (Endringsmulighet)
Ordbøker er mutable, slik at du kan legge til, oppdatere eller fjerne nøkkel-verdi-par etter at ordboken er opprettet;
Merk
Selv om ordbøker tillater flere verdier, må hver nøkkel være unik i en ordbok. Dersom en nøkkel gjentas ved tildeling, vil den siste verdien overskrive den forrige, slik at hver nøkkel kun har én tilhørende verdi.
Eksempler
La oss se på et enkelt oppslagsverk (dictionary). I stedet for å bruke indeksnumre, får du tilgang til elementene i oppslagsverket via nøklene deres, som i dette tilfellet er navnene på dagligvarene.
# Dictionary creation groceryItems = { "Milk": 3.49, "Eggs": 2.99, "Bread": 1.99, "Apples": 0.99 } # Extracting dictionary elements by their keys print("Price of Milk:", groceryItems["Milk"]) print("Price of Bread:", groceryItems["Bread"])
Oppslagsverk (dictionaries) i Python er fleksible når det gjelder hvilke datatyper de kan lagre.
Den eneste begrensningen er at nøkler må være av en uforanderlig (immutable) type (for eksempel strings
, numbers
eller tuples
som kun inneholder uforanderlige elementer). Dette sikrer at nøkkelen forblir uendret.
På den andre siden kan verdier i oppslagsverket være av hvilken som helst type og kan inkludere foranderlige (mutable) typer, som lister eller andre oppslagsverk.
For eksempel:
# A dictionary with various types of keys and values store_info = { "Store Name": "Grocery Galore", # String key and string value 42: "Inventory Count", # Integer key and string value ("Bread", "Milk"): [2.99, 1.59] # Tuple key and list value (prices of bread and milk) } # Extracting dictionary element (list) by its key (tuple) print("Data under key ('Bread', 'Milk'):", store_info[("Bread", "Milk")])
Ordbokmetoder
Ordbøker tilbyr en rekke operasjoner og metoder som muliggjør effektiv håndtering av data. Her er noen av de mest brukte metodene:
get()
: henter verdien for en spesifisert nøkkel, og hvis nøkkelen ikke finnes, returneresNone
. Dette er forskjellig fra å bruke klammeparenteser (f.eks.grocery_items["Milk"]
), som vil gi en feil hvis nøkkelen ikke eksisterer;update()
: oppdaterer ordboken med elementer fra en annen ordbok eller en itererbar med nøkkel-verdi-par, og overskriver eksisterende nøkler;pop()
: fjerner en spesifisert nøkkel og returnerer tilhørende verdi.
Merk
I Python er
None
en spesiell verdi som betyr "ingenting" eller "ingen verdi", og brukes ofte når du vil vise at noe er tomt eller ikke har et resultat.
Eksempel på bruk
Tenk deg at du må oppdatere ordboken for et varelager i dagligvarebutikken din. Slik kan du gjøre det ved hjelp av ordbokmetoder:
# Dictionary for a grocery store inventory inventory = { "Apples": 30, "Oranges": 18, "Bananas": 45 } # Get the count of Oranges print("Count of Oranges:", inventory.get("Oranges")) # Update inventory by adding a new item inventory.update({"Mangoes": 20}) print("Updated Inventory:", inventory) # You can also add a new item to the end of the dictionary like this inventory["Pineapples"] = 15 print("Updated Inventory:", inventory) # Remove Bananas from the inventory removed_item = inventory.pop("Bananas") print("Removed Item:", removed_item) print("Current Inventory:", inventory)
Swipe to start coding
Administrer varelageret til en dagligvarebutikk ved å bruke et ordbok-objekt, der hver vare er et nøkkel-verdi-par med varens navn og detaljer (produkt-ID og kategori).
-
Definer en ordbok
grocery_inventory
for å lagre informasjon:- "Milk": (113, "Dairy")
- "Eggs": (116, "Dairy")
- "Bread": (117, "Bakery")
- "Apples": (141, "Produce")
-
Hent detaljene til varen
"Bread"
fra ordboken og lagre dem i variabelenbread_details
. -
Legg til en ny vare,
"Cookies"
, med produkt-ID143
og kategori"Bakery"
. -
Fjern varen
"Eggs"
fra ordboken.
Krav til utskrift
- Skriv ut detaljene til
"Bread"
:Details of Bread: <$bread_details>
. - Etter å ha lagt til
"Cookies"
, skriv ut det oppdaterte varelageret:Inventory after adding Cookies: <$grocery_inventory>
. - Etter å ha fjernet
"Eggs"
, skriv ut det oppdaterte varelageret:Inventory after removing Eggs: <$grocery_inventory>
.
Løsning
Takk for tilbakemeldingene dine!