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
Johdanto Python-Ohjelmointiin

Pyyhkäise näyttääksesi valikon

book
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.

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, 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:

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 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 palauttaa None . 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:

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-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 ne bread_details-muuttujaan.

  • 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 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.

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, 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:

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 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 palauttaa None . 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:

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-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 ne bread_details-muuttujaan.

  • 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