Ordbøger og Ordbogsmetoder
Ordbøger er måske den mest alsidige Python-datastruktur. De gemmer data som nøgle-værdi par og er essentielle i situationer, hvor data skal hentes hurtigt, og ændringer er hyppige.
I vores købmandsscenarie kunne ordbøger effektivt håndtere leverandøroplysninger, hvilket gør det muligt at få adgang til hver leverandør ved navn eller ID uden at skulle søge gennem en liste.
Se, hvordan Alex demonstrerer, hvordan man bruger ordbøger til vores købmand:
Oprettelse
Ordbøger oprettes ved at omslutte kommaseparerede nøgle-værdi par i krøllede parenteser {}
.
python
Orden
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 snarere end position.
Mutabilitet (Ændringsevne)
Ordbøger er mutable, hvilket giver dig mulighed for at tilføje, opdatere eller fjerne nøgle-værdi par efter ordbogen er blevet oprettet;
Bemærk
Mens ordbøger tillader flere værdier, skal hver nøgle være unik inden for en ordbog. Hvis en nøgle gentages under tildelingen, vil den seneste værdi overskrive den forrige, hvilket sikrer, at hver nøgle kun har én tilsvarende værdi.
Eksempler
Lad os tage et kig på en simpel ordbog. I stedet for at bruge indeksnumre, får du adgang til ordbogselementer gennem deres nøgler, som i dette tilfælde er navnene på dagligvareartiklerne.
# 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"])
Ordbøger i Python er fleksible, når det kommer til de typer data, 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.
På den anden side kan ordbogsværdier være af enhver type og kan inkludere foranderlige (mutable) typer, såsom lister eller andre ordbøger.
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")])
Ordbogsmetoder
Ordbøger tilbyder en række operationer og metoder, der letter effektiv datahåndtering. Her er nogle af de mest almindeligt anvendte metoder:
get()
: henter værdien for en specificeret nøgle, og hvis nøglen ikke findes , returnerer denNone
. Dette er anderledes end at bruge firkantede parenteser (f.eks.grocery_items["Milk"]
), som ville give en fejl , hvis nøglen ikke eksisterer.;update()
: opdaterer ordbogen med elementer fra en anden ordbog eller en iterabel af nøgle-værdi par, overskriver eksisterende nøgler;pop()
: fjerner en specificeret nøgle og returnerer den tilsvarende værdi.
Bemærk
I Python er
None
en speciel værdi, der betyder "ingenting" eller "ingen værdi", og det bruges ofte, når du vil vise, at noget er tomt eller ikke har et resultat.
Eksempelapplikation
Forestil dig, at du skal opdatere ordbogen for et lager i din købmandsbutik. Her er, hvordan du kan gøre det ved hjælp af ordbogsmetoder:
# 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 købmandsforretnings lager ved hjælp af en ordbog, hvor hver vare er et nøgle-værdi par med varens navn og detaljer (produkt ID og kategori).
-
Definer en ordbog
grocery_inventory
til at gemme information:- "Milk": (113, "Dairy")
- "Eggs": (116, "Dairy")
- "Bread": (117, "Bakery")
- "Apples": (141, "Produce")
-
Hent detaljerne for varen
"Bread"
fra ordbogen og gem dem i variablenbread_details
. -
Tilføj en ny vare,
"Cookies"
, med produkt ID143
og kategori"Bakery"
. -
Fjern varen
"Eggs"
fra ordbogen.
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!