Iterera över index
I den föregående uppgiften angav du ett specifikt antal objekt till funktionen range()
. Men vad händer om du behöver bestämma antalet dynamiskt? Det är här indexiteration blir avgörande.
Indexiteration är en grundläggande teknik i Python som gör det möjligt att komma åt och ändra element utifrån deras positioner i datastrukturer som listor eller arrayer. Det är särskilt användbart för uppgifter som kräver noggrann kontroll över varje element, till exempel vid uppdatering av lagernivåer eller hantering av försäljningsdata i en livsmedelsbutik.
Se när Alex visar hur iteration över index kan förenkla arbetsflöden i vårt exempel med livsmedelsbutiken:
Att iterera över index är användbart när du behöver komma åt både indexet och värdet för varje element i en lista. När vi använder range()
tillsammans med len()
kombinerar vi två funktioner för att generera en sekvens av tal som motsvarar indexen för listans element. 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 för 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
Exempelapplikation
För att tillämpa en rabatt på en lista med priser behöver vi ändra elementen i listan direkt. Om vi använder en enkel loop som for cost in prices:
får vi endast en kopia av varje objekt, inte en referens till det faktiska objektet i listan. Ändringar som görs på detta sätt påverkar inte den ursprungliga listan.
För att säkerställa att vi uppdaterar varje element direkt i listan prices
använder vi range(len(prices))
för att iterera över indexen. Detta gör det möjligt att applicera 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)
Observera
Formeln
prices[cost] -= prices[cost] * discount_factor
är ekvivalent medprices[cost] = prices[cost] - prices[cost] * discount_factor
. Detta subtraherar en del av det ursprungliga priset (bestämt av rabatten) från sig själv, vilket effektivt tillämpar rabatten.
cost + 1
i utskriftskommandot justerar indexet så att det ser ut att börja från1
istället för0
, 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 omedelbart återspeglar ändringarna i hela programmet där listan prices
används.
Swipe to start coding
Uppdatera lagernivåerna 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
ochshipment_received
är listor av listor, där varje inre lista innehåller ett produktnamn och dess kvantitet. - Använd en
for
-loop medrange()
ochlen()
för att iterera genom indexen istock_items
. - För varje produkt, addera leveranskvantiteten till det befintliga lagret och uppdatera värdet i
stock_items
.
Utskriftskrav
- För varje produkt, skriv ut:
Stock updated for <product_name>: <updated_quantity> units
- Efter alla uppdateringar, skriv ut:
Final stock quantities:
Stock Items: <stock_items>
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.17
Iterera över index
Svep för att visa menyn
I den föregående uppgiften angav du ett specifikt antal objekt till funktionen range()
. Men vad händer om du behöver bestämma antalet dynamiskt? Det är här indexiteration blir avgörande.
Indexiteration är en grundläggande teknik i Python som gör det möjligt att komma åt och ändra element utifrån deras positioner i datastrukturer som listor eller arrayer. Det är särskilt användbart för uppgifter som kräver noggrann kontroll över varje element, till exempel vid uppdatering av lagernivåer eller hantering av försäljningsdata i en livsmedelsbutik.
Se när Alex visar hur iteration över index kan förenkla arbetsflöden i vårt exempel med livsmedelsbutiken:
Att iterera över index är användbart när du behöver komma åt både indexet och värdet för varje element i en lista. När vi använder range()
tillsammans med len()
kombinerar vi två funktioner för att generera en sekvens av tal som motsvarar indexen för listans element. 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 för 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
Exempelapplikation
För att tillämpa en rabatt på en lista med priser behöver vi ändra elementen i listan direkt. Om vi använder en enkel loop som for cost in prices:
får vi endast en kopia av varje objekt, inte en referens till det faktiska objektet i listan. Ändringar som görs på detta sätt påverkar inte den ursprungliga listan.
För att säkerställa att vi uppdaterar varje element direkt i listan prices
använder vi range(len(prices))
för att iterera över indexen. Detta gör det möjligt att applicera 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)
Observera
Formeln
prices[cost] -= prices[cost] * discount_factor
är ekvivalent medprices[cost] = prices[cost] - prices[cost] * discount_factor
. Detta subtraherar en del av det ursprungliga priset (bestämt av rabatten) från sig själv, vilket effektivt tillämpar rabatten.
cost + 1
i utskriftskommandot justerar indexet så att det ser ut att börja från1
istället för0
, 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 omedelbart återspeglar ändringarna i hela programmet där listan prices
används.
Swipe to start coding
Uppdatera lagernivåerna 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
ochshipment_received
är listor av listor, där varje inre lista innehåller ett produktnamn och dess kvantitet. - Använd en
for
-loop medrange()
ochlen()
för att iterera genom indexen istock_items
. - För varje produkt, addera leveranskvantiteten till det befintliga lagret och uppdatera värdet i
stock_items
.
Utskriftskrav
- För varje produkt, skriv ut:
Stock updated for <product_name>: <updated_quantity> units
- Efter alla uppdateringar, skriv ut:
Final stock quantities:
Stock Items: <stock_items>
Lösning
Tack för dina kommentarer!
Awesome!
Completion rate improved to 2.17single