Ordböcker och Ordbokmetoder
Ordböcker är kanske den mest mångsidiga Python-datastrukturen. De lagrar data som nyckel-värde par och är viktiga för situationer där data behöver hämtas snabbt, och ändringar är frekventa.
I vårt livsmedelsbutiksscenario kan ordböcker effektivt hantera leverantörsinformation, vilket gör att varje leverantör kan nås via sitt namn eller ID utan att behöva söka igenom en lista.
Titta när Alex demonstrerar hur man använder ordböcker för vår livsmedelsbutik:
Skapande
Ordböcker skapas genom att omsluta kommaseparerade nyckel-värde-par i klammerparenteser {}
.
python
Ordning
Ordböcker bevarar insättningsordningen av sina element, men det är viktigt att notera att operationer vanligtvis utförs baserat på nycklar snarare än position.
Föränderlighet
Ordböcker är föränderliga, vilket gör att du kan lägga till, uppdatera eller ta bort nyckel-värde-par efter att ordboken har skapats;
Notera
Även om ordböcker tillåter flera värden, måste varje nyckel vara unik inom en ordbok. Om en nyckel upprepas under tilldelningen 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å en enkel ordbok. Istället för att använda indexnummer, kommer du åt ordbokselement genom deras nycklar, som i detta fall är namnen på livsmedelsvarorna.
# 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öcker i Python är flexibla när det gäller vilka typer av data 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 ordboks värden vara av vilken typ som helst och kan inkludera föränderliga (mutable) typer, såsom listor eller andra ordböcker.
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 erbjuder en rad operationer och metoder som underlättar 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 , returnerar denNone
. 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 iterabel av nyckel-värde-par, och skriver över befintliga nycklar;pop()
: tar bort en angiven nyckel och returnerar motsvarande värde.
Notera
I Python är
None
ett speciellt värde som betyder "ingenting" eller "inget värde", och det används ofta när du vill visa att något är tomt eller inte har något 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 en livsmedelsbutiks inventering med hjälp av en ordbok, där varje vara är ett nyckel-värdepar 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.
Utmatningskrav
- Skriv ut detaljerna för
"Bread"
:Details of Bread: <$bread_details>
. - Efter att ha lagt till
"Cookies"
, skriv ut den uppdaterade inventeringen:Inventory after adding Cookies: <$grocery_inventory>
. - Efter att ha tagit bort
"Eggs"
, skriv ut den uppdaterade inventeringen:Inventory after removing Eggs: <$grocery_inventory>
.
Lösning
Tack för dina kommentarer!