Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Iterera Över Index | Loopar
Introduktion till Python

Svep för att visa menyn

book
Iterera Över Index

I den tidigare uppgiften angav du ett specifikt antal objekt till range()-funktionen. Men vad händer om du behöver bestämma antalet dynamiskt? Det är här indexiteration blir viktig.

Indexiteration är en grundläggande teknik i Python som gör att du kan komma åt och ändra element genom deras positioner inom datastrukturer som listor eller arrayer. Det är särskilt användbart för uppgifter som behöver precis kontroll över varje element, såsom att uppdatera lagernivåer eller hantera försäljningsdata i en livsmedelsbutik.

Titta när Alex demonstrerar hur iteration över index kan förenkla operationer i vårt livsmedelsbutiksexempel:

Iteration över index är användbart när du behöver komma åt både indexet och värdet av varje element i en lista. När vi använder range() med len(), kombinerar vi två funktioner för att generera en sekvens av nummer som motsvarar indexen för listelementen. Denna metod är särskilt användbar i loopar där du behöver komma åt eller ändra element baserat på deras position.

Till exempel, denna for-loop kommer åt indexet och värdet av varje 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

Exempelapplikation

För att tillämpa en rabatt på en lista med priser behöver vi ändra elementen i listan direkt. Att använda en enkel loop som for cost in prices: skulle bara ge oss en kopia av varje objekt, inte en referens till det faktiska objektet i listan. Ändringar som görs på detta sätt skulle inte påverka den ursprungliga listan.

För att säkerställa att vi direkt uppdaterar varje element i prices-listan, använder vi range(len(prices)) för att iterera över indexen. Detta gör att vi kan tillämpa en rabattfaktor på varje 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

Notera

  • Formeln prices[cost] -= prices[cost] * discount_factor är ekvivalent med prices[cost] = prices[cost] - prices[cost] * discount_factor . Detta subtraherar en del av det ursprungliga priset (bestämt av rabatten) från sig självt, vilket effektivt tillämpar rabatten.

  • cost + 1 i utskriftskommandot justerar indexet så att det verkar börja från 1 istället för 0 , vilket gör det mer användarvänligt.

Denna metod säkerställer att den ursprungliga listan prices uppdateras direkt med de nya, rabatterade priserna, vilket återspeglar förändringarna omedelbart överallt i programmet där listan prices används.

Uppgift

Swipe to start coding

Uppdatera lagernivåer genom att kombinera data från två listor: stock_items och shipment_received. Resultatet kommer sedan att uppdatera listan stock_items.

  • Både stock_items och shipment_received är listor av listor, som vardera innehåller ett produktnamn och dess kvantitet.
  • Använd en for-loop med range() och len() för att iterera genom indexen av stock_items.
  • För varje produkt, lägg till leveranskvantiteten till det befintliga lagret och uppdatera värdet i stock_items.

Utdata Krav

  • För varje produkt, skriv ut:
    Lager uppdaterat för <product_name>: <updated_quantity> enheter
  • Efter alla uppdateringar, skriv ut:
    Slutliga lagerkvantiteter:
    Lagerartiklar: <stock_items>

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 4

Fråga AI

expand
ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

book
Iterera Över Index

I den tidigare uppgiften angav du ett specifikt antal objekt till range()-funktionen. Men vad händer om du behöver bestämma antalet dynamiskt? Det är här indexiteration blir viktig.

Indexiteration är en grundläggande teknik i Python som gör att du kan komma åt och ändra element genom deras positioner inom datastrukturer som listor eller arrayer. Det är särskilt användbart för uppgifter som behöver precis kontroll över varje element, såsom att uppdatera lagernivåer eller hantera försäljningsdata i en livsmedelsbutik.

Titta när Alex demonstrerar hur iteration över index kan förenkla operationer i vårt livsmedelsbutiksexempel:

Iteration över index är användbart när du behöver komma åt både indexet och värdet av varje element i en lista. När vi använder range() med len(), kombinerar vi två funktioner för att generera en sekvens av nummer som motsvarar indexen för listelementen. Denna metod är särskilt användbar i loopar där du behöver komma åt eller ändra element baserat på deras position.

Till exempel, denna for-loop kommer åt indexet och värdet av varje 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

Exempelapplikation

För att tillämpa en rabatt på en lista med priser behöver vi ändra elementen i listan direkt. Att använda en enkel loop som for cost in prices: skulle bara ge oss en kopia av varje objekt, inte en referens till det faktiska objektet i listan. Ändringar som görs på detta sätt skulle inte påverka den ursprungliga listan.

För att säkerställa att vi direkt uppdaterar varje element i prices-listan, använder vi range(len(prices)) för att iterera över indexen. Detta gör att vi kan tillämpa en rabattfaktor på varje 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

Notera

  • Formeln prices[cost] -= prices[cost] * discount_factor är ekvivalent med prices[cost] = prices[cost] - prices[cost] * discount_factor . Detta subtraherar en del av det ursprungliga priset (bestämt av rabatten) från sig självt, vilket effektivt tillämpar rabatten.

  • cost + 1 i utskriftskommandot justerar indexet så att det verkar börja från 1 istället för 0 , vilket gör det mer användarvänligt.

Denna metod säkerställer att den ursprungliga listan prices uppdateras direkt med de nya, rabatterade priserna, vilket återspeglar förändringarna omedelbart överallt i programmet där listan prices används.

Uppgift

Swipe to start coding

Uppdatera lagernivåer genom att kombinera data från två listor: stock_items och shipment_received. Resultatet kommer sedan att uppdatera listan stock_items.

  • Både stock_items och shipment_received är listor av listor, som vardera innehåller ett produktnamn och dess kvantitet.
  • Använd en for-loop med range() och len() för att iterera genom indexen av stock_items.
  • För varje produkt, lägg till leveranskvantiteten till det befintliga lagret och uppdatera värdet i stock_items.

Utdata Krav

  • För varje produkt, skriv ut:
    Lager uppdaterat för <product_name>: <updated_quantity> enheter
  • Efter alla uppdateringar, skriv ut:
    Slutliga lagerkvantiteter:
    Lagerartiklar: <stock_items>

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 4
Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Vi beklagar att något gick fel. Vad hände?
some-alt