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
Practice
Projects
Quizzes & Challenges
Quizzer
Challenges
/
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, indeksiteration bliver afgørende.

Indeksiteration 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. Ved at bruge 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
Note
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, hvilket effektivt anvender 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, hvilket straks afspejler ændringerne overalt i programmet, hvor listen prices anvendes.

Opgave

Swipe to start coding

Rabat efter position

Opdater prices-listen ved at anvende forskellige rabatprocenter på hvert element, baseret på dets position i listen. Brug indeks-iteration for at sikre, at du opdaterer den oprindelige prices-liste direkte.

  • Brug en for-løkke med range() og len() til at iterere gennem indeksene i prices;

  • For hvert indeks, anvend følgende rabatter og opdater listen:

    • Indeks 0: 10% rabat (gang med 0.9);
    • Indeks 1: 20% rabat (gang med 0.8);
    • Indeks 2: 15% rabat (gang med 0.85);
    • Indeks 3: 5% rabat (gang med 0.95);
  • Efter opdatering af hver pris, udskriv en linje: Updated price for item {index}: ${updated_price:.2f};

  • Brug .2f i din print-sætning for at formatere priser til 2 decimaler (for eksempel bliver 5 til 5.00).

  • Du skal opdatere prices-listen direkte, ikke blot udskrive de rabatterede værdier.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 6
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

close

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, indeksiteration bliver afgørende.

Indeksiteration 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. Ved at bruge 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
Note
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, hvilket effektivt anvender 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, hvilket straks afspejler ændringerne overalt i programmet, hvor listen prices anvendes.

Opgave

Swipe to start coding

Rabat efter position

Opdater prices-listen ved at anvende forskellige rabatprocenter på hvert element, baseret på dets position i listen. Brug indeks-iteration for at sikre, at du opdaterer den oprindelige prices-liste direkte.

  • Brug en for-løkke med range() og len() til at iterere gennem indeksene i prices;

  • For hvert indeks, anvend følgende rabatter og opdater listen:

    • Indeks 0: 10% rabat (gang med 0.9);
    • Indeks 1: 20% rabat (gang med 0.8);
    • Indeks 2: 15% rabat (gang med 0.85);
    • Indeks 3: 5% rabat (gang med 0.95);
  • Efter opdatering af hver pris, udskriv en linje: Updated price for item {index}: ${updated_price:.2f};

  • Brug .2f i din print-sætning for at formatere priser til 2 decimaler (for eksempel bliver 5 til 5.00).

  • Du skal opdatere prices-listen direkte, ikke blot udskrive de rabatterede værdier.

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 6
single

single

some-alt