Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Iterere Over Indexer | Loops
Introduktion til Python

Stryg for at vise menuen

book
Iterere Over Indexer

I den forrige opgave gav du et specifikt antal elementer til range() funktionen. Men hvad nu hvis du har brug for at bestemme antallet dynamisk? Det er her, indeksiteration bliver essentiel.

Indeksiteration er en kerne teknik i Python, der giver dig mulighed for at få adgang til og ændre elementer ved deres positioner inden for datastrukturer som lister eller arrays. Det er især nyttigt for opgaver, der kræver præcis kontrol over hvert element, såsom opdatering af lagerbeholdninger eller håndtering af salgsdata i en købmandsbutik.

Se, hvordan Alex demonstrerer, hvordan iteration over indekser kan forenkle operationer i vores købmandseksempel:

Iteration over indekser er nyttig, når du har brug for at få adgang til både indekset og værdien af hvert element i en liste. Når vi bruger range() med len(), kombinerer vi to funktioner for at generere en sekvens af tal svarende til indekserne af listeelementerne. Denne metode er særligt nyttig i loops, hvor du har brug for at få adgang til eller ændre elementer baseret på deres position.

For eksempel, denne for loop får adgang til 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

Eksempelapplikation

For at anvende en rabat på en liste af priser, er vi nødt til at ændre elementerne i listen direkte. Ved at bruge en simpel løkke som for cost in prices: vil vi kun få 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 direkte opdaterer hvert element i prices-listen, bruger vi range(len(prices)) til at iterere over indekserne. Dette giver os mulighed for 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, hvilket effektivt anvender rabatten.

  • cost + 1 i print-udsagnet 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 afspejler ændringerne straks på tværs af programmet, hvor end prices-listen bruges.

Opgave

Swipe to start coding

Opdater lagerbeholdninger ved at kombinere data fra to lister: stock_items og shipment_received. Derefter vil resultatet opdatere stock_items-listen.

  • Både stock_items og shipment_received er lister af lister, hver indeholdende et produktnavn og dets mængde.
  • Brug en for-løkke med range() og len() til at iterere gennem indeksene af stock_items.
  • For hvert produkt, tilføj forsendelsesmængden til den eksisterende beholdning og opdater værdien i stock_items.

Outputkrav

  • For hvert produkt, print:
    Stock updated for <product_name>: <updated_quantity> units
  • Efter alle opdateringer, print:
    Final stock quantities:
    Stock Items: <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
Iterere Over Indexer

I den forrige opgave gav du et specifikt antal elementer til range() funktionen. Men hvad nu hvis du har brug for at bestemme antallet dynamisk? Det er her, indeksiteration bliver essentiel.

Indeksiteration er en kerne teknik i Python, der giver dig mulighed for at få adgang til og ændre elementer ved deres positioner inden for datastrukturer som lister eller arrays. Det er især nyttigt for opgaver, der kræver præcis kontrol over hvert element, såsom opdatering af lagerbeholdninger eller håndtering af salgsdata i en købmandsbutik.

Se, hvordan Alex demonstrerer, hvordan iteration over indekser kan forenkle operationer i vores købmandseksempel:

Iteration over indekser er nyttig, når du har brug for at få adgang til både indekset og værdien af hvert element i en liste. Når vi bruger range() med len(), kombinerer vi to funktioner for at generere en sekvens af tal svarende til indekserne af listeelementerne. Denne metode er særligt nyttig i loops, hvor du har brug for at få adgang til eller ændre elementer baseret på deres position.

For eksempel, denne for loop får adgang til 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

Eksempelapplikation

For at anvende en rabat på en liste af priser, er vi nødt til at ændre elementerne i listen direkte. Ved at bruge en simpel løkke som for cost in prices: vil vi kun få 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 direkte opdaterer hvert element i prices-listen, bruger vi range(len(prices)) til at iterere over indekserne. Dette giver os mulighed for 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, hvilket effektivt anvender rabatten.

  • cost + 1 i print-udsagnet 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 afspejler ændringerne straks på tværs af programmet, hvor end prices-listen bruges.

Opgave

Swipe to start coding

Opdater lagerbeholdninger ved at kombinere data fra to lister: stock_items og shipment_received. Derefter vil resultatet opdatere stock_items-listen.

  • Både stock_items og shipment_received er lister af lister, hver indeholdende et produktnavn og dets mængde.
  • Brug en for-løkke med range() og len() til at iterere gennem indeksene af stock_items.
  • For hvert produkt, tilføj forsendelsesmængden til den eksisterende beholdning og opdater værdien i stock_items.

Outputkrav

  • For hvert produkt, print:
    Stock updated for <product_name>: <updated_quantity> units
  • Efter alle opdateringer, print:
    Final stock quantities:
    Stock Items: <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