Iterering Over Indekser
I den forrige opgave angav du et specifikt antal elementer til funktionen range()
. Men hvad nu, hvis du skal bestemme antallet dynamisk? Det er her, indeks-iteration bliver afgørende.
Indeks-iteration er en grundlæggende teknik i Python, der gør det muligt at tilgå og ændre elementer ud fra deres positioner i datastrukturer som lister eller arrays. Det er især nyttigt til opgaver, der kræver præcis kontrol over hvert element, såsom opdatering af lagerbeholdning eller håndtering af salgsdata i et supermarked.
Se med, når Alex demonstrerer, hvordan iteration over indekser kan forenkle operationer i vores supermarkedseksempel:
Iteration over indekser er nyttig, når du skal tilgå både indekset og værdien af hvert element i en liste. Når vi bruger range()
sammen med len()
, kombinerer vi to funktioner for at generere en sekvens af tal, der svarer til indeksene for listeelementerne. Denne metode er særligt anvendelig i løkker, hvor du skal tilgå eller ændre elementer baseret på deres position.
For eksempel tilgår denne for
-løkke både indekset og værdien af hvert element i grocery_list
:
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
Eksempel på anvendelse
For at anvende en rabat på en liste af priser, skal vi ændre elementerne i listen direkte. Hvis vi bruger en simpel løkke som for cost in prices:
, får vi kun en kopi af hvert element, ikke en reference til det faktiske element i listen. Ændringer foretaget på denne måde vil ikke påvirke den oprindelige liste.
For at sikre, at vi opdaterer hvert element direkte i prices
-listen, bruger vi range(len(prices))
til at iterere over indeksene. Dette gør det muligt at anvende en rabatfaktor på hvert element:
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)
Bemærk
Formlen
prices[cost] -= prices[cost] * discount_factor
svarer tilprices[cost] = prices[cost] - prices[cost] * discount_factor
. Dette trækker en del af den oprindelige pris (bestemt af rabatten) fra sig selv og anvender dermed rabatten.
cost + 1
i print-udtrykket justerer indekset, så det ser ud til at starte fra1
i stedet for0
, hvilket gør det mere brugervenligt.
Denne metode sikrer, at den oprindelige liste prices
opdateres direkte med de nye, nedsatte priser, så ændringerne straks afspejles overalt i programmet, hvor prices
-listen bruges.
Swipe to start coding
Opdater lagerniveauer ved at kombinere data fra to lister: stock_items
og shipment_received
. Resultatet vil derefter opdatere listen stock_items
.
- Både
stock_items
ogshipment_received
er lister af lister, hvor hver indeholder et produktnavn og dets antal. - Brug en
for
-løkke medrange()
oglen()
til at iterere gennem indeksene istock_items
. - For hvert produkt lægges forsendelsesmængden til det eksisterende lager, og værdien opdateres i
stock_items
.
Outputkrav
- For hvert produkt, udskriv:
Lager opdateret for <product_name>: <updated_quantity> enheder
- Efter alle opdateringer, udskriv:
Endelige lagerantal:
Lagerartikler: <stock_items>
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.17
Iterering Over Indekser
Stryg for at vise menuen
I den forrige opgave angav du et specifikt antal elementer til funktionen range()
. Men hvad nu, hvis du skal bestemme antallet dynamisk? Det er her, indeks-iteration bliver afgørende.
Indeks-iteration er en grundlæggende teknik i Python, der gør det muligt at tilgå og ændre elementer ud fra deres positioner i datastrukturer som lister eller arrays. Det er især nyttigt til opgaver, der kræver præcis kontrol over hvert element, såsom opdatering af lagerbeholdning eller håndtering af salgsdata i et supermarked.
Se med, når Alex demonstrerer, hvordan iteration over indekser kan forenkle operationer i vores supermarkedseksempel:
Iteration over indekser er nyttig, når du skal tilgå både indekset og værdien af hvert element i en liste. Når vi bruger range()
sammen med len()
, kombinerer vi to funktioner for at generere en sekvens af tal, der svarer til indeksene for listeelementerne. Denne metode er særligt anvendelig i løkker, hvor du skal tilgå eller ændre elementer baseret på deres position.
For eksempel tilgår denne for
-løkke både indekset og værdien af hvert element i grocery_list
:
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
Eksempel på anvendelse
For at anvende en rabat på en liste af priser, skal vi ændre elementerne i listen direkte. Hvis vi bruger en simpel løkke som for cost in prices:
, får vi kun en kopi af hvert element, ikke en reference til det faktiske element i listen. Ændringer foretaget på denne måde vil ikke påvirke den oprindelige liste.
For at sikre, at vi opdaterer hvert element direkte i prices
-listen, bruger vi range(len(prices))
til at iterere over indeksene. Dette gør det muligt at anvende en rabatfaktor på hvert element:
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)
Bemærk
Formlen
prices[cost] -= prices[cost] * discount_factor
svarer tilprices[cost] = prices[cost] - prices[cost] * discount_factor
. Dette trækker en del af den oprindelige pris (bestemt af rabatten) fra sig selv og anvender dermed rabatten.
cost + 1
i print-udtrykket justerer indekset, så det ser ud til at starte fra1
i stedet for0
, hvilket gør det mere brugervenligt.
Denne metode sikrer, at den oprindelige liste prices
opdateres direkte med de nye, nedsatte priser, så ændringerne straks afspejles overalt i programmet, hvor prices
-listen bruges.
Swipe to start coding
Opdater lagerniveauer ved at kombinere data fra to lister: stock_items
og shipment_received
. Resultatet vil derefter opdatere listen stock_items
.
- Både
stock_items
ogshipment_received
er lister af lister, hvor hver indeholder et produktnavn og dets antal. - Brug en
for
-løkke medrange()
oglen()
til at iterere gennem indeksene istock_items
. - For hvert produkt lægges forsendelsesmængden til det eksisterende lager, og værdien opdateres i
stock_items
.
Outputkrav
- For hvert produkt, udskriv:
Lager opdateret for <product_name>: <updated_quantity> enheder
- Efter alle opdateringer, udskriv:
Endelige lagerantal:
Lagerartikler: <stock_items>
Løsning
Tak for dine kommentarer!
Awesome!
Completion rate improved to 2.17single