Ordböcker och Ordboksmetoder
Ordböcker är kanske de mest mångsidiga datastrukturerna i Python. De lagrar data som nyckel-värde-par och är oumbärliga i situationer där data behöver hämtas snabbt och ändringar sker ofta.
I vårt scenario med livsmedelsbutiken kan ordböcker effektivt hantera leverantörsinformation, vilket gör det möjligt att komma åt varje leverantör via dess namn eller ID utan att behöva söka igenom en lista.
Se när Alex demonstrerar hur ordböcker kan användas i vår livsmedelsbutik:
Skapande
Ordböcker skapas genom att omsluta kommaseparerade nyckel-värde-par med klamrar {}
.
python
Ordning
Ordböcker bevarar insättningsordningen för sina element, men det är viktigt att notera att operationer vanligtvis utförs baserat på nycklar snarare än position.
Mutabilitet (Föränderlighet)
Ordböcker är föränderliga, vilket innebär att du kan lägga till, uppdatera eller ta bort nyckel-värde-par efter att ordboken har skapats.
Observera
Även om ordböcker tillåter flera värden, måste varje nyckel vara unik inom en ordbok. Om en nyckel upprepas vid tilldelning kommer det senaste värdet att skriva över det föregående, vilket säkerställer att varje nyckel endast har ett motsvarande värde.
Exempel
Låt oss titta på ett enkelt dictionary. Istället för att använda indexnummer, får du åtkomst till dictionary-element via deras nycklar, som i detta fall är namnen på matvarorna.
# 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 är flexibla när det gäller vilka datatyper de kan lagra.
Den enda begränsningen är att nycklar måste vara av en oföränderlig (immutable) typ (såsom strings
, numbers
eller tuples
som endast innehåller oföränderliga element). Detta säkerställer att nyckeln förblir oförändrad.
Å andra sidan kan dictionary-värden vara av vilken typ som helst och kan inkludera föränderliga (mutable) typer, såsom listor eller andra dictionaries.
Till exempel:
# 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")])
Ordboksmetoder
Ordböcker tillhandahåller en rad operationer och metoder som möjliggör effektiv datahantering. Här är några av de mest använda metoderna:
get()
: hämtar värdet för en angiven nyckel, och om nyckeln inte hittas returnerasNone
. Detta skiljer sig från att använda hakparenteser (t.ex.grocery_items["Milk"]
), vilket skulle ge ett fel om nyckeln inte finns;update()
: uppdaterar ordboken med element från en annan ordbok eller en itererbar med nyckel-värde-par, och skriver över befintliga nycklar;pop()
: tar bort en angiven nyckel och returnerar motsvarande värde.
Observera
I Python är
None
ett speciellt värde som betyder "ingenting" eller "inget värde", och används ofta för att visa att något är tomt eller saknar resultat.
Exempelapplikation
Föreställ dig att du behöver uppdatera ordboken för ett lager i din livsmedelsbutik. Så här kan du göra det med hjälp av ordboksmetoder:
# 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
Hantera ett livsmedelsbutiks lager med hjälp av en ordbok, där varje vara är ett nyckel-värde-par med varans namn och detaljer (produkt-ID och kategori).
-
Definiera en ordbok
grocery_inventory
för att lagra information:- "Milk": (113, "Dairy")
- "Eggs": (116, "Dairy")
- "Bread": (117, "Bakery")
- "Apples": (141, "Produce")
-
Hämta detaljerna för varan
"Bread"
från ordboken och lagra dem i variabelnbread_details
. -
Lägg till en ny vara,
"Cookies"
, med produkt-ID143
och kategori"Bakery"
. -
Ta bort varan
"Eggs"
från ordboken.
Utdatakrav
- Skriv ut detaljerna för
"Bread"
:Details of Bread: <$bread_details>
. - Efter att ha lagt till
"Cookies"
, skriv ut det uppdaterade lagret:Inventory after adding Cookies: <$grocery_inventory>
. - Efter att ha tagit bort
"Eggs"
, skriv ut det uppdaterade lagret:Inventory after removing Eggs: <$grocery_inventory>
.
Lösning
Tack för dina kommentarer!