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

single

bookIteration 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 vigtig.

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 opgaver i vores supermarkedseksempel:

Iteration over indekser er nyttig, når du har brug for at 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

I denne opgave skal du anvende forskellige rabatprocenter på produktpriser baseret på deres position (indeks) i en liste.

Du får en liste med produktpriser. Hver pris skal opdateres i henhold til dens indeks i listen.

Trin

  1. Start med den angivne liste over priser:
prices = [29.99, 45.50, 12.75, 38.20]
  1. Brug en for-løkke sammen med range() og len() til at iterere over indeksene i prices-listen (fra indeks 0 til det sidste indeks).

  2. Inde i løkken skal du kontrollere det aktuelle indeks og anvende den tilsvarende rabat:

  • Indeks 0 → anvend 10% rabat
  • Indeks 1 → anvend 20% rabat
  • Indeks 2 → anvend 15% rabat
  • Indeks 3 → anvend 5% rabat
  1. Opdater hver pris direkte i prices-listen efter rabatten er anvendt.

  2. Efter opdatering af prisen, udskriv resultatet i følgende format:

Updated price for item {index}: ${updated_price:.2f}

Bemærk

.2f formaterer et tal til to decimaler (for eksempel bliver 5 til 5.00). Brug det i en f-string som dette: {price:.2f}.

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

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

some-alt