Sanakirjat ja Sanakirjamenetelmät
Sanakirjat ovat ehkä monipuolisin Pythonin tietorakenne. Ne tallentavat tietoa avain-arvo -pareina ja ovat välttämättömiä tilanteissa, joissa tietoa täytyy hakea nopeasti, ja muutokset ovat yleisiä.
Ruokakauppaskenaariossamme sanakirjat voisivat tehokkaasti käsitellä toimittajatietoja, jolloin kutakin toimittajaa voidaan käyttää sen nimen tai ID:n perusteella ilman, että tarvitsee etsiä listasta.
Katso, kun Alex näyttää, kuinka käyttää sanakirjoja ruokakaupassamme:
Luominen
Sanakirjat luodaan sulkemalla pilkulla erotetut avain-arvo-parit kiharaisiin sulkuihin {}
.
python
Järjestys
Sanakirjat säilyttävät elementtiensä lisäysjärjestyksen, vaikka onkin tärkeää huomata, että toiminnot suoritetaan tyypillisesti avainten perusteella, ei sijainnin.
Muokattavuus (Muunneltavuus)
Sanakirjat ovat muokattavia, mikä mahdollistaa lisäämisen, päivittämisen tai poistamisen avain-arvo-pareista sanakirjan luomisen jälkeen;
Huomautus
Vaikka sanakirjat sallivat useita arvoja, jokaisen avaimen on oltava yksilöllinen sanakirjassa. Jos avain toistetaan määrittämisen aikana, uusin arvo korvaa edellisen, varmistaen, että jokaisella avaimella on vain yksi vastaava arvo.
Esimerkit
Katsotaanpa yksinkertaista sanakirjaa. Sen sijaan, että käyttäisit indeksi numeroita, pääset sanakirjan elementteihin heidän avaimiensa kautta, jotka tässä tapauksessa ovat ruokakaupan tuotteiden nimet.
# 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"])
Pythonin sanakirjat ovat joustavia, kun on kyse tallennettavien tietotyyppien valinnasta.
Ainoa rajoitus on, että avainten on oltava muuttumattomia (immutable) tyyppejä (kuten strings
, numbers
tai tuples
, jotka sisältävät vain muuttumattomia elementtejä). Tämä varmistaa, että avain pysyy muuttumattomana.
Toisaalta, sanakirjan arvot voivat olla mitä tahansa tyyppiä ja voivat sisältää muuttuvia (mutable) tyyppejä, kuten listoja tai muita sanakirjoja.
Esimerkiksi:
# 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")])
Sanakirjan metodit
Sanakirjat tarjoavat joukon operaatioita ja metodeja, jotka helpottavat tehokasta tietojen käsittelyä. Tässä on joitakin yleisimmin käytettyjä metodeja:
get()
: hakee arvon määritetylle avaimelle, ja jos avainta ei löydy , se palauttaaNone
. Tämä eroaa hakasulkeiden käytöstä (esim.grocery_items["Milk"]
), joka aiheuttaisi virheen , jos avainta ei ole olemassa.;update()
: päivittää sanakirjan toisen sanakirjan tai avain-arvoparien iteroitavan avulla, korvaten olemassa olevat avaimet;pop()
: poistaa määritetyn avaimen ja palauttaa vastaavan arvon.
Huomautus
Pythonissa
None
on erityisarvo, joka tarkoittaa "ei mitään" tai "ei arvoa", ja sitä käytetään usein, kun halutaan osoittaa, että jokin on tyhjä tai sillä ei ole tulosta.
Esimerkkisovellus
Kuvittele, että sinun täytyy päivittää sanakirja ruokakauppasi varastoa varten. Näin voit tehdä sen sanakirjan metodeilla:
# 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
Hallitse ruokakaupan varastoa käyttämällä sanakirjaa, jossa jokainen tuote on avain-arvopari tuotteen nimen ja tietojen (tuotetunnus ja kategoria) kanssa.
-
Määritä sanakirja
grocery_inventory
tallentamaan tietoja:- "Milk": (113, "Dairy")
- "Eggs": (116, "Dairy")
- "Bread": (117, "Bakery")
- "Apples": (141, "Produce")
-
Hae tuotteen
"Bread"
tiedot sanakirjasta ja tallenna nebread_details
-muuttujaan. -
Lisää uusi tuote,
"Cookies"
, tuotetunnuksella143
ja kategoriassa"Bakery"
. -
Poista tuote
"Eggs"
sanakirjasta.
Tulostusvaatimukset
- Tulosta
"Bread"
-tuotteen tiedot:Details of Bread: <$bread_details>
. - Kun
"Cookies"
on lisätty, tulosta päivitetty varasto:Inventory after adding Cookies: <$grocery_inventory>
. - Kun
"Eggs"
on poistettu, tulosta päivitetty varasto:Inventory after removing Eggs: <$grocery_inventory>
.
Ratkaisu
Kiitos palautteestasi!