single
Indeksien läpikäynti
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 varastotason 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 hakee sekä indeksin että arvon jokaisesta grocery_list-listan alkiosta:
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
Kun haluamme soveltaa alennusta hintalistaan, meidän on muokattava listan alkioita suoraan. Yksinkertainen silmukka, kuten for cost in prices:, antaa meille vain kopion jokaisesta alkiosta, ei viittausta varsinaiseen listan alkioon. Tällä tavalla tehdyt muutokset eivät vaikuta alkuperäiseen listaan.
Jotta voimme päivittää jokaisen alkion suoraan prices-listassa, käytämme range(len(prices)) iteroidaksemme indeksien yli. 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)
Huomautus
Kaava
prices[cost] -= prices[cost] * discount_factorvastaa muotoaprices[cost] = prices[cost] - prices[cost] * discount_factor. Tämä vähentää alkuperäisestä hinnasta alennuksen määrän, jolloin alennus toteutuu;Tulostuksessa
cost + 1säätää indeksiä niin, että se näyttää alkavan1:stä0:n sijaan, mikä tekee siitä käyttäjäystävällisemmän.
Tämä menetelmä varmistaa, että alkuperäinen lista prices päivittyy suoraan uusilla, alennetuilla hinnoilla, ja muutokset näkyvät välittömästi kaikkialla ohjelmassa, missä prices-listaa käytetään.
Pyyhkäise aloittaaksesi koodauksen
Tässä tehtävässä sovelletaan eri alennusprosentteja tuotteen hintoihin niiden sijainnin (indeksin) perusteella listassa.
Saat listan tuotehinnoista. Jokainen hinta tulee päivittää sen indeksin mukaisesti.
Vaiheet
- Aloita annetulla hintalistalla:
prices = [29.99, 45.50, 12.75, 38.20]
-
Käytä for-silmukkaa yhdessä
range()- jalen()-funktioiden kanssa käydäksesi läpiprices-listan indeksit (indeksistä0viimeiseen indeksiin). -
Silmukan sisällä tarkista nykyinen indeksi ja sovella vastaavaa alennusta:
- Indeksi
0→ 10 % alennus - Indeksi
1→ 20 % alennus - Indeksi
2→ 15 % alennus - Indeksi
3→ 5 % alennus
-
Päivitä jokainen hinta suoraan
prices-listaan alennuksen jälkeen. -
Päivittämisen jälkeen tulosta tulos seuraavassa muodossa:
Updated price for item {index}: ${updated_price:.2f}
Huom
.2fmuotoilee luvun kahden desimaalin tarkkuudella (esimerkiksi5muuttuu muotoon5.00). Käytä sitä f-merkkijonossa näin:{price:.2f}.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme