Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Iterere Over Indexes | Løkker
Introduksjon til Python

Sveip for å vise menyen

book
Iterere Over Indexes

I den forrige oppgaven ga du et spesifikt antall elementer til range()-funksjonen. Men hva om du trenger å bestemme antallet dynamisk? Det er her indeksiterasjon blir essensielt.

Indeksiterasjon er en kjerne teknikk i Python som lar deg få tilgang til og endre elementer etter deres posisjoner innen datastrukturer som lister eller arrayer. Det er spesielt nyttig for oppgaver som trenger presis kontroll over hvert element, som å oppdatere lagerbeholdning eller administrere salgsdata i en dagligvarebutikk.

Se mens Alex demonstrerer hvordan iterasjon over indekser kan forenkle operasjoner i vårt dagligvarebutikkeksempel:

Iterasjon over indekser er nyttig når du trenger tilgang til både indeksen og verdien av hvert element i en liste. Når vi bruker range() med len(), kombinerer vi to funksjoner for å generere en sekvens av tall som tilsvarer indeksene til listeelementene. Denne metoden er spesielt nyttig i løkker der du trenger å få tilgang til eller endre elementer basert på deres posisjon.

For eksempel, denne for-løkken får tilgang til indeksen og verdien av 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

Eksempelapplikasjon

For å anvende en rabatt på en liste med priser, må vi endre elementene i listen direkte. Å bruke en enkel løkke som for cost in prices: vil bare gi oss en kopi av hvert element, ikke en referanse til det faktiske elementet i listen. Endringer gjort på denne måten vil ikke påvirke den opprinnelige listen.

For å sikre at vi direkte oppdaterer hvert element i prices-listen, bruker vi range(len(prices)) for å iterere over indeksene. Dette lar oss anvende en rabattfaktor 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

Merk

  • Formelen prices[cost] -= prices[cost] * discount_factor er ekvivalent med prices[cost] = prices[cost] - prices[cost] * discount_factor . Dette trekker en del av den opprinnelige prisen (bestemt av rabatten) fra seg selv, og anvender dermed rabatten.

  • cost + 1 i utskriftssetningen justerer indeksen slik at den ser ut til å starte fra 1 i stedet for 0 , noe som gjør det mer brukervennlig.

Denne metoden sikrer at den opprinnelige listen prices oppdateres direkte med de nye, rabatterte prisene, og reflekterer endringene umiddelbart over hele programmet der prices-listen brukes.

Oppgave

Swipe to start coding

Oppdater lagerbeholdningen ved å kombinere data fra to lister: stock_items og shipment_received. Deretter vil resultatet oppdatere stock_items-listen.

  • Både stock_items og shipment_received er lister av lister, hver inneholdende et produktnavn og dets kvantitet.
  • Bruk en for-løkke med range() og len() for å iterere gjennom indeksene til stock_items.
  • For hvert produkt, legg til forsendelseskvantiteten til den eksisterende beholdningen og oppdater verdien i stock_items.

Utdata Krav

  • For hvert produkt, skriv ut:
    Lager oppdatert for <product_name>: <updated_quantity> enheter
  • Etter alle oppdateringer, skriv ut:
    Endelige lagerkvantiteter:
    Lagerartikler: <stock_items>

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 4
Vi beklager at noe gikk galt. Hva skjedde?

Spør AI

expand
ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

book
Iterere Over Indexes

I den forrige oppgaven ga du et spesifikt antall elementer til range()-funksjonen. Men hva om du trenger å bestemme antallet dynamisk? Det er her indeksiterasjon blir essensielt.

Indeksiterasjon er en kjerne teknikk i Python som lar deg få tilgang til og endre elementer etter deres posisjoner innen datastrukturer som lister eller arrayer. Det er spesielt nyttig for oppgaver som trenger presis kontroll over hvert element, som å oppdatere lagerbeholdning eller administrere salgsdata i en dagligvarebutikk.

Se mens Alex demonstrerer hvordan iterasjon over indekser kan forenkle operasjoner i vårt dagligvarebutikkeksempel:

Iterasjon over indekser er nyttig når du trenger tilgang til både indeksen og verdien av hvert element i en liste. Når vi bruker range() med len(), kombinerer vi to funksjoner for å generere en sekvens av tall som tilsvarer indeksene til listeelementene. Denne metoden er spesielt nyttig i løkker der du trenger å få tilgang til eller endre elementer basert på deres posisjon.

For eksempel, denne for-løkken får tilgang til indeksen og verdien av 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

Eksempelapplikasjon

For å anvende en rabatt på en liste med priser, må vi endre elementene i listen direkte. Å bruke en enkel løkke som for cost in prices: vil bare gi oss en kopi av hvert element, ikke en referanse til det faktiske elementet i listen. Endringer gjort på denne måten vil ikke påvirke den opprinnelige listen.

For å sikre at vi direkte oppdaterer hvert element i prices-listen, bruker vi range(len(prices)) for å iterere over indeksene. Dette lar oss anvende en rabattfaktor 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

Merk

  • Formelen prices[cost] -= prices[cost] * discount_factor er ekvivalent med prices[cost] = prices[cost] - prices[cost] * discount_factor . Dette trekker en del av den opprinnelige prisen (bestemt av rabatten) fra seg selv, og anvender dermed rabatten.

  • cost + 1 i utskriftssetningen justerer indeksen slik at den ser ut til å starte fra 1 i stedet for 0 , noe som gjør det mer brukervennlig.

Denne metoden sikrer at den opprinnelige listen prices oppdateres direkte med de nye, rabatterte prisene, og reflekterer endringene umiddelbart over hele programmet der prices-listen brukes.

Oppgave

Swipe to start coding

Oppdater lagerbeholdningen ved å kombinere data fra to lister: stock_items og shipment_received. Deretter vil resultatet oppdatere stock_items-listen.

  • Både stock_items og shipment_received er lister av lister, hver inneholdende et produktnavn og dets kvantitet.
  • Bruk en for-løkke med range() og len() for å iterere gjennom indeksene til stock_items.
  • For hvert produkt, legg til forsendelseskvantiteten til den eksisterende beholdningen og oppdater verdien i stock_items.

Utdata Krav

  • For hvert produkt, skriv ut:
    Lager oppdatert for <product_name>: <updated_quantity> enheter
  • Etter alle oppdateringer, skriv ut:
    Endelige lagerkvantiteter:
    Lagerartikler: <stock_items>

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 4
Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Vi beklager at noe gikk galt. Hva skjedde?
some-alt