Iteraatio 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 varastotasojen 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ä listan alkion indeksin että arvon. Kun käytämme range()- ja len()-funktioita yhdessä, yhdistämme kaksi funktiota luodaksemme numerosarjan, 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
Esimerkkisovellus
Jotta alennus voidaan 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. Tämä mahdollistaa alennuskertoimen soveltamisen 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)
Huom
Kaava
prices[cost] -= prices[cost] * discount_factoron sama kuinprices[cost] = prices[cost] - prices[cost] * discount_factor. Tämä vähentää alkuperäisestä hinnasta alennuksen määrän, jolloin alennus toteutuu;
cost + 1tulostuksessa säätää indeksin alkamaan1:stä0:n sijaan, mikä tekee siitä käyttäjäystävällisemmän.
Tämä menetelmä varmistaa, että alkuperäinen prices-lista päivittyy suoraan uusilla, alennetuilla hinnoilla, ja muutokset näkyvät välittömästi ohjelman kaikissa kohdissa, joissa prices-listaa käytetään.
Swipe to start coding
Alennus sijainnin mukaan
Sovella alennusprosentteja tuotehintoihin niiden sijainnin perusteella listassa käyttämällä indeksin läpikäyntiä.
- Käytä for-silmukkaa yhdessä
range()- jalen()-funktioiden kanssa käydäksesi läpiprices-listan indeksit. - Sovella alennuksia indeksin perusteella: 10 % indeksille 0, 20 % indeksille 1, 15 % indeksille 2 ja 5 % indeksille 3.
- Päivitä jokainen hinta
prices-listassa kertomalla se alennuskertoimella (esim. 0.9 tarkoittaa 10 % alennusta). - Tulosta
Updated price for item {index}: ${updated_price:.2f}jokaiselle tuotteelle.
Huom
.2fmuotoilee luvun kahden desimaalin tarkkuudella (esim.5→5.00). Käytä sitä näin:updated_price[index]:.2f.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain why using `range(len(list))` is better for modifying list elements?
How would I apply a different discount to each item in the list?
What happens if I use a regular `for item in list:` loop instead?
Awesome!
Completion rate improved to 2.17
Iteraatio 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 varastotasojen 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ä listan alkion indeksin että arvon. Kun käytämme range()- ja len()-funktioita yhdessä, yhdistämme kaksi funktiota luodaksemme numerosarjan, 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
Esimerkkisovellus
Jotta alennus voidaan 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. Tämä mahdollistaa alennuskertoimen soveltamisen 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)
Huom
Kaava
prices[cost] -= prices[cost] * discount_factoron sama kuinprices[cost] = prices[cost] - prices[cost] * discount_factor. Tämä vähentää alkuperäisestä hinnasta alennuksen määrän, jolloin alennus toteutuu;
cost + 1tulostuksessa säätää indeksin alkamaan1:stä0:n sijaan, mikä tekee siitä käyttäjäystävällisemmän.
Tämä menetelmä varmistaa, että alkuperäinen prices-lista päivittyy suoraan uusilla, alennetuilla hinnoilla, ja muutokset näkyvät välittömästi ohjelman kaikissa kohdissa, joissa prices-listaa käytetään.
Swipe to start coding
Alennus sijainnin mukaan
Sovella alennusprosentteja tuotehintoihin niiden sijainnin perusteella listassa käyttämällä indeksin läpikäyntiä.
- Käytä for-silmukkaa yhdessä
range()- jalen()-funktioiden kanssa käydäksesi läpiprices-listan indeksit. - Sovella alennuksia indeksin perusteella: 10 % indeksille 0, 20 % indeksille 1, 15 % indeksille 2 ja 5 % indeksille 3.
- Päivitä jokainen hinta
prices-listassa kertomalla se alennuskertoimella (esim. 0.9 tarkoittaa 10 % alennusta). - Tulosta
Updated price for item {index}: ${updated_price:.2f}jokaiselle tuotteelle.
Huom
.2fmuotoilee luvun kahden desimaalin tarkkuudella (esim.5→5.00). Käytä sitä näin:updated_price[index]:.2f.
Ratkaisu
Kiitos palautteestasi!
single