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

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