Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Sanakirjat ja Sanakirjamenetelmät | Muut Tietotyypit
Johdatus Pythoniin

Pyyhkäise näyttääksesi valikon

book
Sanakirjat ja Sanakirjamenetelmät

Sanakirjat ovat kenties monipuolisin Pythonin tietorakenne. Ne tallentavat tietoa avain-arvo-pareina ja ovat välttämättömiä tilanteissa, joissa tietoa täytyy hakea nopeasti ja muutoksia tehdään usein.

Ruokakauppaskenaariossamme sanakirjat voisivat tehokkaasti hallita toimittajatietoja, jolloin jokaiseen toimittajaan pääsee käsiksi nimen tai tunnisteen perusteella ilman tarvetta etsiä listasta.

Katso, kuinka Alex havainnollistaa sanakirjojen käyttöä ruokakaupassamme:

Luominen

Sanakirjat luodaan sulkemalla pilkuilla erotetut avain-arvo-parit kaarisulkeisiin {}.

python

Järjestys

Sanakirjat säilyttävät alkioiden lisäysjärjestyksen, mutta on tärkeää huomata, että toiminnot tehdään yleensä avainten perusteella, ei sijainnin.

Muokattavuus

Sanakirjat ovat muokattavia, joten voit lisätä, päivittää tai poistaa avain-arvo-pareja sanakirjan luomisen jälkeen;

Huom

Vaikka sanakirjoihin voi tallentaa useita arvoja, jokaisen avaimen täytyy olla yksilöllinen sanakirjassa. Jos avain toistetaan määrittelyn aikana, uusin arvo korvaa aiemman, jolloin kullakin avaimella on vain yksi arvo.

Esimerkit

Tarkastellaan yksinkertaista sanakirjaa. Indeksinumeroiden sijaan sanakirjan alkioihin pääsee käsiksi avainten avulla, jotka tässä tapauksessa ovat ruokatarvikkeiden nimet.

1234567891011
# 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"])
copy

Pythonin sanakirjat ovat joustavia tallennettavien tietotyyppien suhteen.

Ainoa rajoitus on, että avainten tulee olla muuttumattomia (immutable) tyyppejä (kuten strings, numbers tai tuples, jotka sisältävät vain muuttumattomia alkioita). Tämä varmistaa, että avain pysyy muuttumattomana.

Sen sijaan sanakirjan arvot voivat olla mitä tahansa tyyppiä ja voivat sisältää myös muuttuvia (mutable) tyyppejä, kuten listoja tai muita sanakirjoja.

Esimerkiksi:

123456789
# 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")])
copy

Sanakirjan metodit

Sanakirjat tarjoavat joukon toimintoja ja metodeja, jotka mahdollistavat tehokkaan tietojen käsittelyn. Tässä joitakin yleisimmin käytettyjä metodeja:

  • get(): hakee arvon määritetylle avaimelle, ja jos avainta ei löydy, palauttaa None. Tämä eroaa hakasulkeiden käytöstä (esim. grocery_items["Milk"]), joka aiheuttaa virheen, jos avainta ei ole;

  • update(): päivittää sanakirjan toisesta sanakirjasta tai avain-arvoparien iteroitavasta, korvaten olemassa olevat avaimet;

  • pop(): poistaa määritetyn avaimen ja palauttaa siihen liittyvän arvon.

Huom

Pythonissa None on erityisarvo, joka tarkoittaa "ei mitään" tai "ei arvoa", ja sitä käytetään usein osoittamaan, että jokin on tyhjä tai tulosta ei ole.

Esimerkkisovellus

Kuvittele, että sinun täytyy päivittää sanakirja, joka sisältää ruokakauppasi varaston. Näin voit tehdä sen sanakirjan metodeilla:

12345678910111213141516171819202122
# 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)
copy
Tehtävä

Swipe to start coding

Hallitse ruokakaupan varastoa käyttämällä sanakirjaa, jossa jokainen tuote on avain-arvo -pari sisältäen tuotteen nimen sekä tiedot (tuotetunnus ja kategoria).

  • Määrittele sanakirja grocery_inventory tietojen tallentamiseen:

    • "Milk": (113, "Dairy")
    • "Eggs": (116, "Dairy")
    • "Bread": (117, "Bakery")
    • "Apples": (141, "Produce")
  • Hae tuotteen "Bread" tiedot sanakirjasta ja tallenna ne muuttujaan bread_details.

  • Lisää uusi tuote, "Cookies", tuotetunnuksella 143 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

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7

Kysy tekoälyä

expand
ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

book
Sanakirjat ja Sanakirjamenetelmät

Sanakirjat ovat kenties monipuolisin Pythonin tietorakenne. Ne tallentavat tietoa avain-arvo-pareina ja ovat välttämättömiä tilanteissa, joissa tietoa täytyy hakea nopeasti ja muutoksia tehdään usein.

Ruokakauppaskenaariossamme sanakirjat voisivat tehokkaasti hallita toimittajatietoja, jolloin jokaiseen toimittajaan pääsee käsiksi nimen tai tunnisteen perusteella ilman tarvetta etsiä listasta.

Katso, kuinka Alex havainnollistaa sanakirjojen käyttöä ruokakaupassamme:

Luominen

Sanakirjat luodaan sulkemalla pilkuilla erotetut avain-arvo-parit kaarisulkeisiin {}.

python

Järjestys

Sanakirjat säilyttävät alkioiden lisäysjärjestyksen, mutta on tärkeää huomata, että toiminnot tehdään yleensä avainten perusteella, ei sijainnin.

Muokattavuus

Sanakirjat ovat muokattavia, joten voit lisätä, päivittää tai poistaa avain-arvo-pareja sanakirjan luomisen jälkeen;

Huom

Vaikka sanakirjoihin voi tallentaa useita arvoja, jokaisen avaimen täytyy olla yksilöllinen sanakirjassa. Jos avain toistetaan määrittelyn aikana, uusin arvo korvaa aiemman, jolloin kullakin avaimella on vain yksi arvo.

Esimerkit

Tarkastellaan yksinkertaista sanakirjaa. Indeksinumeroiden sijaan sanakirjan alkioihin pääsee käsiksi avainten avulla, jotka tässä tapauksessa ovat ruokatarvikkeiden nimet.

1234567891011
# 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"])
copy

Pythonin sanakirjat ovat joustavia tallennettavien tietotyyppien suhteen.

Ainoa rajoitus on, että avainten tulee olla muuttumattomia (immutable) tyyppejä (kuten strings, numbers tai tuples, jotka sisältävät vain muuttumattomia alkioita). Tämä varmistaa, että avain pysyy muuttumattomana.

Sen sijaan sanakirjan arvot voivat olla mitä tahansa tyyppiä ja voivat sisältää myös muuttuvia (mutable) tyyppejä, kuten listoja tai muita sanakirjoja.

Esimerkiksi:

123456789
# 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")])
copy

Sanakirjan metodit

Sanakirjat tarjoavat joukon toimintoja ja metodeja, jotka mahdollistavat tehokkaan tietojen käsittelyn. Tässä joitakin yleisimmin käytettyjä metodeja:

  • get(): hakee arvon määritetylle avaimelle, ja jos avainta ei löydy, palauttaa None. Tämä eroaa hakasulkeiden käytöstä (esim. grocery_items["Milk"]), joka aiheuttaa virheen, jos avainta ei ole;

  • update(): päivittää sanakirjan toisesta sanakirjasta tai avain-arvoparien iteroitavasta, korvaten olemassa olevat avaimet;

  • pop(): poistaa määritetyn avaimen ja palauttaa siihen liittyvän arvon.

Huom

Pythonissa None on erityisarvo, joka tarkoittaa "ei mitään" tai "ei arvoa", ja sitä käytetään usein osoittamaan, että jokin on tyhjä tai tulosta ei ole.

Esimerkkisovellus

Kuvittele, että sinun täytyy päivittää sanakirja, joka sisältää ruokakauppasi varaston. Näin voit tehdä sen sanakirjan metodeilla:

12345678910111213141516171819202122
# 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)
copy
Tehtävä

Swipe to start coding

Hallitse ruokakaupan varastoa käyttämällä sanakirjaa, jossa jokainen tuote on avain-arvo -pari sisältäen tuotteen nimen sekä tiedot (tuotetunnus ja kategoria).

  • Määrittele sanakirja grocery_inventory tietojen tallentamiseen:

    • "Milk": (113, "Dairy")
    • "Eggs": (116, "Dairy")
    • "Bread": (117, "Bakery")
    • "Apples": (141, "Produce")
  • Hae tuotteen "Bread" tiedot sanakirjasta ja tallenna ne muuttujaan bread_details.

  • Lisää uusi tuote, "Cookies", tuotetunnuksella 143 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

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7
Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt