Woordenboeken en Woordenboekmethoden
Woordenboeken zijn misschien wel de meest veelzijdige Python datastructuur. Ze slaan gegevens op als sleutel-waarde paren en zijn essentieel voor situaties waarin gegevens snel moeten worden opgehaald, en wijzigingen frequent zijn.
In ons supermarkt scenario zouden woordenboeken efficiënt leveranciersinformatie kunnen beheren, waardoor elke leverancier toegankelijk is via zijn naam of ID zonder dat er door een lijst gezocht hoeft te worden.
Kijk hoe Alex demonstreert hoe je woordenboeken kunt gebruiken voor onze supermarkt:
Creatie
Woordenboeken worden gemaakt door komma-gescheiden sleutel-waarde paren in accolades {}
te plaatsen.
python
Volgorde
Woordenboeken behouden de invoegvolgorde van hun elementen, hoewel het belangrijk is op te merken dat bewerkingen meestal worden uitgevoerd op basis van sleutels in plaats van positie.
Veranderlijkheid
Woordenboeken zijn veranderlijk, waardoor je sleutel-waarde paren kunt toevoegen, bijwerken of verwijderen nadat het woordenboek is gemaakt;
Opmerking
Hoewel woordenboeken meerdere waarden toestaan, moet elke sleutel uniek zijn binnen een woordenboek. Als een sleutel tijdens de toewijzing wordt herhaald, zal de nieuwste waarde de vorige overschrijven, zodat elke sleutel slechts één overeenkomstige waarde heeft.
Voorbeelden
Laten we eens kijken naar een eenvoudig woordenboek. In plaats van indexnummers te gebruiken, krijg je toegang tot woordenboekelementen 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 als het gaat om de soorten gegevens die ze kunnen opslaan.
De enige beperking is dat sleutels van een onveranderlijk type moeten zijn (zoals strings
, numbers
of tuples
die alleen onveranderlijke elementen bevatten). Dit zorgt ervoor dat de sleutel onveranderd blijft.
Aan de andere kant kunnen woordenboekwaarden van elk type zijn en kunnen ze veranderlijke (veranderbare) 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 een reeks bewerkingen en methoden die efficiënte gegevensverwerking vergemakkelijken. Hier zijn enkele van de meest gebruikte methoden:
get()
: haalt de waarde op voor een opgegeven sleutel, en als de sleutel niet wordt gevonden , retourneert hetNone
. Dit is anders dan het gebruik van vierkante haken (bijv.grocery_items["Milk"]
), wat een fout 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 het wordt vaak gebruikt wanneer je wilt aangeven dat iets leeg is of geen resultaat heeft.
Voorbeeldtoepassing
Stel je voor dat je het woordenboek voor een inventaris in je supermarkt moet bijwerken. Hier is hoe je dat kunt 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 woordenboek, waarbij elk item een sleutel-waarde paar is met de naam en details van het item (product-ID en categorie).
-
Definieer een woordenboek
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 item
"Bread"
uit het woordenboek en sla ze op in de variabelebread_details
. -
Voeg een nieuw item toe,
"Cookies"
, met product-ID143
en categorie"Bakery"
. -
Verwijder het item
"Eggs"
uit het woordenboek.
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!