Ordbøger og Ordbogsmetoder
Ordbøger er måske den mest alsidige datastruktur i Python. De gemmer data som nøgle-værdi-par og er uundværlige i situationer, hvor data skal hentes hurtigt, og ændringer forekommer hyppigt.
I vores supermarkedsscenarie kan ordbøger effektivt håndtere leverandøroplysninger, så hver leverandør kan tilgås via navn eller ID uden at skulle gennemsøge en liste.
Se med, når Alex demonstrerer, hvordan ordbøger kan anvendes i vores supermarked:
Oprettelse
Ordbøger oprettes ved at omslutte kommaseparerede nøgle-værdi-par med krøllede parenteser {}
.
python
Rækkefølge
Ordbøger bevarer indsættelsesrækkefølgen af deres elementer, men det er vigtigt at bemærke, at operationer typisk udføres baseret på nøgler frem for position.
Mutabilitet (Ændringsmulighed)
Ordbøger er mutable og gør det muligt at tilføje, opdatere eller fjerne nøgle-værdi-par efter oprettelse;
Bemærk
Selvom ordbøger tillader flere værdier, skal hver nøgle være unik i en ordbog. Hvis en nøgle gentages under tildeling, vil den seneste værdi overskrive den forrige, hvilket sikrer, at hver nøgle kun har én tilknyttet værdi.
Eksempler
Lad os se på et simpelt dictionary. I stedet for at bruge indeksnumre, får du adgang til dictionary-elementer via deres nøgler, som i dette tilfælde er navnene på dagligvarerne.
# 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"])
Dictionaries i Python er fleksible med hensyn til de datatyper, de kan gemme.
Den eneste begrænsning er, at nøgler skal være af en uforanderlig (immutable) type (såsom strings
, numbers
eller tuples
, der kun indeholder uforanderlige elementer). Dette sikrer, at nøglen forbliver uændret.
Omvendt kan dictionary-værdier være af enhver type og kan inkludere foranderlige (mutable) typer, såsom lister eller andre dictionaries.
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")])
Dictionary-metoder
Dictionaries tilbyder en række operationer og metoder, der muliggør effektiv databehandling. Her er nogle af de mest anvendte metoder:
get()
: henter værdien for en angivet nøgle, og hvis nøglen ikke findes, returneresNone
. Dette adskiller sig fra brugen af firkantede parenteser (f.eks.grocery_items["Milk"]
), som vil udløse en fejl, hvis nøglen ikke eksisterer;update()
: opdaterer dictionary med elementer fra en anden dictionary eller et itererbart objekt af nøgle-værdi-par og overskriver eksisterende nøgler;pop()
: fjerner en angivet nøgle og returnerer den tilsvarende værdi.
Bemærk
I Python er
None
en særlig værdi, der betyder "intet" eller "ingen værdi", og den bruges ofte til at vise, at noget er tomt eller ikke har et resultat.
Eksempel på anvendelse
Forestil dig, at du skal opdatere dictionary for et lager i din dagligvarebutik. Her kan du gøre det ved hjælp af dictionary-metoder:
# 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 en dagligvarebutiks lager ved hjælp af et dictionary, hvor hver vare er et nøgle-værdi-par med varens navn og detaljer (produkt-ID og kategori).
-
Definér et dictionary
grocery_inventory
til at gemme information:- "Milk": (113, "Dairy")
- "Eggs": (116, "Dairy")
- "Bread": (117, "Bakery")
- "Apples": (141, "Produce")
-
Hent detaljerne for varen
"Bread"
fra dictionary'et og gem dem i variablenbread_details
. -
Tilføj en ny vare,
"Cookies"
, med produkt-ID143
og kategori"Bakery"
. -
Fjern varen
"Eggs"
fra dictionary'et.
Outputkrav
- Udskriv detaljerne for
"Bread"
:Details of Bread: <$bread_details>
. - Efter tilføjelse af
"Cookies"
, udskriv det opdaterede lager:Inventory after adding Cookies: <$grocery_inventory>
. - Efter fjernelse af
"Eggs"
, udskriv det opdaterede lager:Inventory after removing Eggs: <$grocery_inventory>
.
Løsning
Tak for dine kommentarer!