Woordenboeken en Woordenboekmethoden
Woordenboeken zijn wellicht de meest veelzijdige datastructuur in Python. Ze slaan gegevens op als sleutel-waarde paren en zijn essentieel in situaties waarin gegevens snel moeten worden opgehaald en aanpassingen vaak voorkomen.
In ons supermarktvoorbeeld kunnen woordenboeken efficiënt leveranciersinformatie beheren, waardoor elke leverancier toegankelijk is via zijn naam of ID zonder door een lijst te hoeven zoeken.
Bekijk hoe Alex laat zien hoe je woordenboeken gebruikt voor onze supermarkt:
Aanmaken
Woordenboeken worden aangemaakt door komma-gescheiden sleutel-waarde paren tussen accolades {}
te plaatsen.
python
Volgorde
Woordenboeken behouden de invoegvolgorde van hun elementen, hoewel het belangrijk is op te merken dat bewerkingen doorgaans op basis van sleutels in plaats van positie worden uitgevoerd.
Mutabiliteit (Veranderbaarheid)
Woordenboeken zijn mutabel, waardoor je sleutel-waarde paren kunt toevoegen, bijwerken of verwijderen nadat het woordenboek is aangemaakt;
Opmerking
Hoewel woordenboeken meerdere waarden toestaan, moet elke sleutel uniek zijn binnen een woordenboek. Als een sleutel wordt herhaald tijdens het toewijzen, zal de laatste waarde de vorige overschrijven, zodat elke sleutel slechts één bijbehorende waarde heeft.
Voorbeelden
Bekijk een eenvoudig woordenboek. In plaats van indexnummers te gebruiken, krijg je toegang tot elementen van het woordenboek via hun sleutels, die in dit geval de namen van de boodschappen zijn.
# 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"])
Woordenboeken in Python zijn flexibel wat betreft de typen gegevens die ze kunnen opslaan.
De enige beperking is dat sleutels van een onveranderlijk (immutable) type moeten zijn (zoals strings
, numbers
of tuples
die alleen onveranderlijke elementen bevatten). Dit zorgt ervoor dat de sleutel ongewijzigd blijft.
Aan de andere kant kunnen waarden in een woordenboek van elk type zijn en mogen ze veranderlijke (mutable) typen bevatten, zoals lijsten of andere woordenboeken.
Bijvoorbeeld:
# 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")])
Woordenboekmethoden
Woordenboeken bieden diverse bewerkingen en methoden die efficiënte gegevensverwerking mogelijk maken. Hieronder staan enkele van de meest gebruikte methoden:
get()
: haalt de waarde op voor een opgegeven sleutel, en als de sleutel niet wordt gevonden, retourneert dezeNone
. Dit verschilt van het gebruik van rechte haken (bijv.grocery_items["Milk"]
), wat een foutmelding zou geven als de sleutel niet bestaat;update()
: werkt het woordenboek bij met elementen uit een ander woordenboek of een iterabele van sleutel-waardeparen, waarbij bestaande sleutels worden overschreven;pop()
: verwijdert een opgegeven sleutel en retourneert de bijbehorende waarde.
Opmerking
In Python is
None
een speciale waarde die "niets" of "geen waarde" betekent, en wordt vaak gebruikt om aan te geven dat iets leeg is of geen resultaat heeft.
Voorbeeldtoepassing
Stel dat je het woordenboek voor de inventaris van je supermarkt moet bijwerken. Zo kun je dit doen met behulp van woordenboekmethoden:
# 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
Beheer de voorraad van een supermarkt met behulp van een dictionary, waarbij elk artikel een key-value-paar is met de naam van het artikel en details (product-ID en categorie).
-
Definieer een dictionary
grocery_inventory
om informatie op te slaan:- "Milk": (113, "Dairy")
- "Eggs": (116, "Dairy")
- "Bread": (117, "Bakery")
- "Apples": (141, "Produce")
-
Haal de details op van het artikel
"Bread"
uit de dictionary en sla deze op in de variabelebread_details
. -
Voeg een nieuw artikel toe,
"Cookies"
, met product-ID143
en categorie"Bakery"
. -
Verwijder het artikel
"Eggs"
uit de dictionary.
Uitvoervereisten
- Print de details van
"Bread"
:Details of Bread: <$bread_details>
. - Na het toevoegen van
"Cookies"
, print de bijgewerkte voorraad:Inventory after adding Cookies: <$grocery_inventory>
. - Na het verwijderen van
"Eggs"
, print de bijgewerkte voorraad:Inventory after removing Eggs: <$grocery_inventory>
.
Oplossing
Bedankt voor je feedback!