Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Iteraatio Indekseillä | Silmukat
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Johdatus Pythoniin

bookIteraatio Indekseillä

Edellisessä tehtävässä annoit tietyn määrän alkioita range()-funktiolle. Mutta entä jos määrä täytyy määrittää dynaamisesti? Tässä kohtaa indeksien läpikäynti on olennainen tekniikka.

Indeksien läpikäynti on keskeinen tekniikka Pythonissa, jonka avulla voit päästä käsiksi ja muokata alkioita niiden sijainnin perusteella tietorakenteissa, kuten listoissa tai taulukoissa. Tämä on erityisen hyödyllistä tehtävissä, joissa tarvitaan tarkkaa hallintaa jokaiseen alkioon, esimerkiksi varastotilanteen päivittämisessä tai myyntitietojen hallinnassa ruokakaupassa.

Katso, kuinka Alex havainnollistaa, miten indeksien läpikäynti voi yksinkertaistaa toimintoja ruokakauppaesimerkissämme:

Indeksien läpikäynti on hyödyllistä, kun tarvitset sekä alkion indeksin että arvon listassa. Kun käytämme range()- ja len()-funktioita yhdessä, yhdistämme kaksi funktiota luodaksemme lukujonon, joka vastaa listan alkioiden indeksejä. Tämä menetelmä on erityisen hyödyllinen silmukoissa, joissa täytyy käsitellä tai muokata alkioita niiden sijainnin perusteella.

Esimerkiksi tämä for-silmukka käsittelee sekä indeksin että arvon jokaiselle grocery_list-listan alkiolle:

12345678
# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
copy

Esimerkkisovellus

Kun alennus halutaan soveltaa hintalistaan, täytyy listan alkioita muokata suoraan. Yksinkertainen silmukka, kuten for cost in prices:, antaa vain kopion jokaisesta alkiosta, ei viittausta alkuperäiseen listan alkioon. Tällä tavoin tehdyt muutokset eivät vaikuta alkuperäiseen listaan.

Jotta voimme päivittää jokaisen alkion suoraan prices-listassa, käytämme range(len(prices)) käydäksemme läpi indeksit. Näin voimme soveltaa alennuskertoimen jokaiseen alkioon:

12345678910111213
# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
copy
Note
Huomio
  • Kaava prices[cost] -= prices[cost] * discount_factor on sama kuin prices[cost] = prices[cost] - prices[cost] * discount_factor. Tämä vähentää alkuperäisestä hinnasta osan (alennuksen verran), jolloin alennus toteutuu;
  • cost + 1 tulostuksessa säätää indeksin alkamaan 1:stä 0:n sijaan, mikä tekee siitä käyttäjäystävällisemmän.

Tämä menetelmä varmistaa, että alkuperäinen lista prices päivitetään suoraan uusilla, alennetuilla hinnoilla, jolloin muutokset näkyvät välittömästi kaikkialla ohjelmassa, missä prices-listaa käytetään.

Tehtävä

Swipe to start coding

Alennus sijainnin mukaan

Päivitä prices-lista soveltamalla eri alennusprosentteja jokaiselle tuotteelle sen sijainnin perusteella listassa. Käytä indeksin läpikäyntiä varmistaaksesi, että päivität alkuperäistä prices-listaa suoraan.

  • Käytä for-silmukkaa yhdessä range()- ja len()-funktioiden kanssa käydäksesi läpi prices-listan indeksit;

  • Kullekin indeksille sovella seuraavat alennukset ja päivitä lista:

    • Indeksi 0: 10 % alennus (kerro 0.9);
    • Indeksi 1: 20 % alennus (kerro 0.8);
    • Indeksi 2: 15 % alennus (kerro 0.85);
    • Indeksi 3: 5 % alennus (kerro 0.95);
  • Jokaisen hinnan päivityksen jälkeen tulosta rivi: Updated price for item {index}: ${updated_price:.2f};

  • Käytä .2f tulostuksessa muotoillaksesi hinnat kahden desimaalin tarkkuudella (esimerkiksi 5 muuttuu muotoon 5.00).

  • Sinun tulee päivittää prices-lista suoraan, älä pelkästään tulosta alennettuja arvoja.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 6
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

close

bookIteraatio Indekseillä

Pyyhkäise näyttääksesi valikon

Edellisessä tehtävässä annoit tietyn määrän alkioita range()-funktiolle. Mutta entä jos määrä täytyy määrittää dynaamisesti? Tässä kohtaa indeksien läpikäynti on olennainen tekniikka.

Indeksien läpikäynti on keskeinen tekniikka Pythonissa, jonka avulla voit päästä käsiksi ja muokata alkioita niiden sijainnin perusteella tietorakenteissa, kuten listoissa tai taulukoissa. Tämä on erityisen hyödyllistä tehtävissä, joissa tarvitaan tarkkaa hallintaa jokaiseen alkioon, esimerkiksi varastotilanteen päivittämisessä tai myyntitietojen hallinnassa ruokakaupassa.

Katso, kuinka Alex havainnollistaa, miten indeksien läpikäynti voi yksinkertaistaa toimintoja ruokakauppaesimerkissämme:

Indeksien läpikäynti on hyödyllistä, kun tarvitset sekä alkion indeksin että arvon listassa. Kun käytämme range()- ja len()-funktioita yhdessä, yhdistämme kaksi funktiota luodaksemme lukujonon, joka vastaa listan alkioiden indeksejä. Tämä menetelmä on erityisen hyödyllinen silmukoissa, joissa täytyy käsitellä tai muokata alkioita niiden sijainnin perusteella.

Esimerkiksi tämä for-silmukka käsittelee sekä indeksin että arvon jokaiselle grocery_list-listan alkiolle:

12345678
# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
copy

Esimerkkisovellus

Kun alennus halutaan soveltaa hintalistaan, täytyy listan alkioita muokata suoraan. Yksinkertainen silmukka, kuten for cost in prices:, antaa vain kopion jokaisesta alkiosta, ei viittausta alkuperäiseen listan alkioon. Tällä tavoin tehdyt muutokset eivät vaikuta alkuperäiseen listaan.

Jotta voimme päivittää jokaisen alkion suoraan prices-listassa, käytämme range(len(prices)) käydäksemme läpi indeksit. Näin voimme soveltaa alennuskertoimen jokaiseen alkioon:

12345678910111213
# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
copy
Note
Huomio
  • Kaava prices[cost] -= prices[cost] * discount_factor on sama kuin prices[cost] = prices[cost] - prices[cost] * discount_factor. Tämä vähentää alkuperäisestä hinnasta osan (alennuksen verran), jolloin alennus toteutuu;
  • cost + 1 tulostuksessa säätää indeksin alkamaan 1:stä 0:n sijaan, mikä tekee siitä käyttäjäystävällisemmän.

Tämä menetelmä varmistaa, että alkuperäinen lista prices päivitetään suoraan uusilla, alennetuilla hinnoilla, jolloin muutokset näkyvät välittömästi kaikkialla ohjelmassa, missä prices-listaa käytetään.

Tehtävä

Swipe to start coding

Alennus sijainnin mukaan

Päivitä prices-lista soveltamalla eri alennusprosentteja jokaiselle tuotteelle sen sijainnin perusteella listassa. Käytä indeksin läpikäyntiä varmistaaksesi, että päivität alkuperäistä prices-listaa suoraan.

  • Käytä for-silmukkaa yhdessä range()- ja len()-funktioiden kanssa käydäksesi läpi prices-listan indeksit;

  • Kullekin indeksille sovella seuraavat alennukset ja päivitä lista:

    • Indeksi 0: 10 % alennus (kerro 0.9);
    • Indeksi 1: 20 % alennus (kerro 0.8);
    • Indeksi 2: 15 % alennus (kerro 0.85);
    • Indeksi 3: 5 % alennus (kerro 0.95);
  • Jokaisen hinnan päivityksen jälkeen tulosta rivi: Updated price for item {index}: ${updated_price:.2f};

  • Käytä .2f tulostuksessa muotoillaksesi hinnat kahden desimaalin tarkkuudella (esimerkiksi 5 muuttuu muotoon 5.00).

  • Sinun tulee päivittää prices-lista suoraan, älä pelkästään tulosta alennettuja arvoja.

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 5. Luku 6
single

single

some-alt