Iterere over indekser
I forrige oppgave oppga du et spesifikt antall elementer til range()-funksjonen. Men hva om du må bestemme antallet dynamisk? Dette er hvor indeksering blir avgjørende.
Indeksering er en grunnleggende teknikk i Python som lar deg få tilgang til og endre elementer basert på deres posisjon i datastrukturer som lister eller arrayer. Dette er spesielt nyttig for oppgaver som krever presis kontroll over hvert element, som for eksempel å oppdatere lagerbeholdning eller håndtere salgsdata i en dagligvarebutikk.
Se hvordan Alex demonstrerer hvordan iterasjon over indekser kan forenkle operasjoner i vårt dagligvarebutikk-eksempel:
Å iterere over indekser er nyttig når du trenger tilgang til både indeksen og verdien til hvert element i en liste. Når vi bruker range() sammen 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 hvor du må få tilgang til eller endre elementer basert på deres posisjon.
For eksempel, denne for-løkka gir tilgang til både indeksen og verdien til 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
Eksempel på bruk
For å gi rabatt på en liste med priser, må vi endre elementene i listen direkte. Ved å bruke en enkel løkke som for cost in prices: får vi kun 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 oppdaterer hvert element direkte i prices-listen, bruker vi range(len(prices)) for å iterere over indeksene. Dette lar oss bruke 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)
Merk
Formelen
prices[cost] -= prices[cost] * discount_factorer ekvivalent medprices[cost] = prices[cost] - prices[cost] * discount_factor. Dette trekker fra en andel av den opprinnelige prisen (bestemt av rabatten) fra seg selv, og gir dermed rabatten;
cost + 1i print-setningen justerer indeksen slik at den starter fra1i stedet for0, noe som gjør det mer brukervennlig.
Denne metoden sikrer at den opprinnelige listen prices oppdateres direkte med de nye, rabatterte prisene, slik at endringene umiddelbart gjenspeiles i hele programmet der prices-listen brukes.
Swipe to start coding
Rabatt etter posisjon
Bruk rabattprosenter på produktpriser basert på deres posisjon i listen ved å iterere over indekser.
- Bruk en for-løkke med
range()oglen()for å iterere gjennom indeksene tilprices. - Bruk rabatter basert på indeksposisjon: 10 % for indeks 0, 20 % for indeks 1, 15 % for indeks 2 og 5 % for indeks 3.
- Oppdater hver pris i listen
pricesved å multiplisere med rabattfaktoren (f.eks. 0,9 for 10 % rabatt). - Skriv ut
Updated price for item {index}: ${updated_price:.2f}for hvert element.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.17
Iterere over indekser
Sveip for å vise menyen
I forrige oppgave oppga du et spesifikt antall elementer til range()-funksjonen. Men hva om du må bestemme antallet dynamisk? Dette er hvor indeksering blir avgjørende.
Indeksering er en grunnleggende teknikk i Python som lar deg få tilgang til og endre elementer basert på deres posisjon i datastrukturer som lister eller arrayer. Dette er spesielt nyttig for oppgaver som krever presis kontroll over hvert element, som for eksempel å oppdatere lagerbeholdning eller håndtere salgsdata i en dagligvarebutikk.
Se hvordan Alex demonstrerer hvordan iterasjon over indekser kan forenkle operasjoner i vårt dagligvarebutikk-eksempel:
Å iterere over indekser er nyttig når du trenger tilgang til både indeksen og verdien til hvert element i en liste. Når vi bruker range() sammen 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 hvor du må få tilgang til eller endre elementer basert på deres posisjon.
For eksempel, denne for-løkka gir tilgang til både indeksen og verdien til 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
Eksempel på bruk
For å gi rabatt på en liste med priser, må vi endre elementene i listen direkte. Ved å bruke en enkel løkke som for cost in prices: får vi kun 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 oppdaterer hvert element direkte i prices-listen, bruker vi range(len(prices)) for å iterere over indeksene. Dette lar oss bruke 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)
Merk
Formelen
prices[cost] -= prices[cost] * discount_factorer ekvivalent medprices[cost] = prices[cost] - prices[cost] * discount_factor. Dette trekker fra en andel av den opprinnelige prisen (bestemt av rabatten) fra seg selv, og gir dermed rabatten;
cost + 1i print-setningen justerer indeksen slik at den starter fra1i stedet for0, noe som gjør det mer brukervennlig.
Denne metoden sikrer at den opprinnelige listen prices oppdateres direkte med de nye, rabatterte prisene, slik at endringene umiddelbart gjenspeiles i hele programmet der prices-listen brukes.
Swipe to start coding
Rabatt etter posisjon
Bruk rabattprosenter på produktpriser basert på deres posisjon i listen ved å iterere over indekser.
- Bruk en for-løkke med
range()oglen()for å iterere gjennom indeksene tilprices. - Bruk rabatter basert på indeksposisjon: 10 % for indeks 0, 20 % for indeks 1, 15 % for indeks 2 og 5 % for indeks 3.
- Oppdater hver pris i listen
pricesved å multiplisere med rabattfaktoren (f.eks. 0,9 for 10 % rabatt). - Skriv ut
Updated price for item {index}: ${updated_price:.2f}for hvert element.
Løsning
Takk for tilbakemeldingene dine!
single