Indekseissä Iteroiminen
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 olennaista.
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 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:
# 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 halutaan soveltaa alennusta hintalistaan, täytyy listan alkioita muokata suoraan. Käyttämällä yksinkertaista silmukkaa, kuten for cost in prices:
, saadaan vain kopio 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:
# 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ää alkuperäisestä hinnasta osan (alennuksen verran), jolloin alennus toteutuu.Tulostuksessa
cost + 1
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 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
. Tämän jälkeen tulos päivittää stock_items
-listan.
- Sekä
stock_items
ettäshipment_received
ovat listoja, jotka sisältävät tuotteen nimen ja määrän. - Käytä
for
-silmukkaa yhdessärange()
- jalen()
-funktioiden kanssa käydäksesi läpistock_items
-listan indeksit. - Lisää kunkin tuotteen kohdalla lähetyksen määrä olemassa olevaan varastoon ja päivitä arvo
stock_items
-listaan.
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!