Iteraatio Indekseillä
Edellisessä tehtävässä annoit tietyn määrän kohteita range()
-funktiolle. Mutta entä jos sinun täytyy määrittää määrä dynaamisesti? Tässä kohtaa indeksin iterointi tulee olennaiseksi.
Indeksin iterointi on keskeinen tekniikka Pythonissa, joka mahdollistaa elementtien käsittelyn ja muokkaamisen niiden sijaintien perusteella tietorakenteissa, kuten listoissa tai taulukoissa. Se on erityisen hyödyllinen tehtävissä, jotka vaativat tarkkaa hallintaa jokaisesta elementistä, kuten varastotasojen päivittämisessä tai myyntitietojen hallinnassa ruokakaupassa.
Katso, kuinka Alex näyttää, miten indeksien iterointi voi yksinkertaistaa toimintoja ruokakauppaesimerkissämme:
Indeksien iterointi on hyödyllistä, kun sinun täytyy päästä käsiksi sekä listan elementin indeksiin että arvoon. Kun käytämme range()
-funktiota yhdessä len()
-funktion kanssa, yhdistämme kaksi funktiota luodaksemme numerosekvenssin, joka vastaa listan elementtien indeksejä. Tämä menetelmä on erityisen hyödyllinen silmukoissa, joissa sinun täytyy käsitellä tai muokata elementtejä niiden sijainnin perusteella.
Esimerkiksi tämä for
-silmukka käsittelee jokaisen elementin indeksin ja arvon grocery_list
-listassa:
# 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 voimme soveltaa alennusta hintalistaan, meidän on muokattava listan elementtejä suoraan. Yksinkertaisen silmukan käyttäminen kuten for cost in prices:
antaisi meille vain kopion kustakin tuotteesta, ei viittausta varsinaiseen listan tuotteeseen. Tällä tavalla tehdyt muutokset eivät vaikuttaisi alkuperäiseen listaan.
Varmistaaksemme, että päivitämme suoraan jokaisen elementin prices
-listassa, käytämme range(len(prices))
iteroidaksemme indeksien yli. Tämä mahdollistaa alennuskertoimen soveltamisen jokaiseen elementtiin:
# 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_factor
on sama kuinprices[cost] = prices[cost] - prices[cost] * discount_factor
. Tämä vähentää osan alkuperäisestä hinnasta (määritetty alennuksella) itsestään, mikä käytännössä soveltaa alennuksen.
cost + 1
tulostuslausekkeessa säätää indeksin niin, että se näyttää alkavan1
sijasta0
, 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, mikä heijastaa muutokset välittömästi kaikkialla ohjelmassa, missä prices
-listaa käytetään.
Swipe to start coding
Päivitä varastotasot yhdistämällä tiedot kahdesta listasta: stock_items
ja shipment_received
. Sitten tulos päivittää stock_items
-listan.
- Sekä
stock_items
ettäshipment_received
ovat listoja, jotka sisältävät tuotteen nimen ja sen määrän. - Käytä
for
-silmukkaarange()
jalen()
kanssa iteroidaksesistock_items
-indeksien läpi. - Jokaiselle tuotteelle lisää lähetyksen määrä olemassa olevaan varastoon ja päivitä arvo
stock_items
-listassa.
Tulostusvaatimukset
- Jokaiselle tuotteelle tulosta:
Stock updated for <product_name>: <updated_quantity> units
- Kaikkien päivitysten jälkeen tulosta:
Final stock quantities:
Stock Items: <stock_items>
Ratkaisu
Kiitos palautteestasi!