Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Iterering Over Indekser | Løkker
Introduktion til Python

Stryg for at vise menuen

book
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
copy

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)
copy

Bemærk

  • Formlen prices[cost] -= prices[cost] * discount_factor svarer til prices[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 fra 1 i stedet for 0, 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.

Opgave

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 og shipment_received er lister af lister, hvor hver indeholder et produktnavn og dets antal.
  • Brug en for-løkke med range() og len() til at iterere gennem indeksene i stock_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

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 4
Vi beklager, at noget gik galt. Hvad skete der?

Spørg AI

expand
ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

book
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
copy

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)
copy

Bemærk

  • Formlen prices[cost] -= prices[cost] * discount_factor svarer til prices[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 fra 1 i stedet for 0, 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.

Opgave

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 og shipment_received er lister af lister, hvor hver indeholder et produktnavn og dets antal.
  • Brug en for-løkke med range() og len() til at iterere gennem indeksene i stock_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

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 4
Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Vi beklager, at noget gik galt. Hvad skete der?
some-alt