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

bookIterering 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 en dagligvarebutik.

Se med, når Alex demonstrerer, hvordan iteration over indekser kan forenkle operationer i vores dagligvarebutikseksempel:

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

Rabat efter position

Anvend rabatprocenter på produktpriser baseret på deres placering i listen ved hjælp af indeksiteration.

  1. Brug en for-løkke med range() og len() til at iterere gennem indeksene i prices.
  2. Anvend rabatter baseret på indeksposition: 10% for indeks 0, 20% for indeks 1, 15% for indeks 2 og 5% for indeks 3.
  3. Opdater hver pris i prices-listen ved at multiplicere med rabatfaktoren (f.eks. 0,9 for 10% rabat).
  4. Udskriv Updated price for item {index}: ${updated_price:.2f} for hvert element.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

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

Suggested prompts:

Can you explain why using `range(len(list))` is better for modifying list elements?

How would I apply a different discount to each item in the list?

What happens if I use a regular `for item in list:` loop instead?

close

Awesome!

Completion rate improved to 2.17

bookIterering 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 en dagligvarebutik.

Se med, når Alex demonstrerer, hvordan iteration over indekser kan forenkle operationer i vores dagligvarebutikseksempel:

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

Rabat efter position

Anvend rabatprocenter på produktpriser baseret på deres placering i listen ved hjælp af indeksiteration.

  1. Brug en for-løkke med range() og len() til at iterere gennem indeksene i prices.
  2. Anvend rabatter baseret på indeksposition: 10% for indeks 0, 20% for indeks 1, 15% for indeks 2 og 5% for indeks 3.
  3. Opdater hver pris i prices-listen ved at multiplicere med rabatfaktoren (f.eks. 0,9 for 10% rabat).
  4. Udskriv Updated price for item {index}: ${updated_price:.2f} for hvert element.

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
single

single

some-alt