Über Indizes Iterieren
Im vorherigen Abschnitt haben Sie der Funktion range()
eine bestimmte Anzahl von Elementen übergeben. Aber was, wenn Sie die Anzahl dynamisch bestimmen müssen? Hier wird die Indexiteration wesentlich.
Die Indexiteration ist eine Kerntechnik in Python, die es Ihnen ermöglicht, Elemente anhand ihrer Positionen in Datenstrukturen wie Listen oder Arrays zuzugreifen und zu modifizieren. Sie ist besonders hilfreich für Aufgaben, die eine präzise Kontrolle über jedes Element erfordern, wie das Aktualisieren von Lagerbeständen oder das Verwalten von Verkaufsdaten in einem Lebensmittelgeschäft.
Sehen Sie zu, wie Alex demonstriert, wie das Iterieren über Indizes die Abläufe in unserem Lebensmittelgeschäft-Beispiel vereinfachen kann:
Das Iterieren über Indizes ist nützlich, wenn Sie sowohl den Index als auch den Wert jedes Elements in einer Liste benötigen. Wenn wir range()
mit len()
verwenden, kombinieren wir zwei Funktionen, um eine Zahlenfolge zu erzeugen, die den Indizes der Listenelemente entspricht. Diese Methode ist besonders nützlich in Schleifen, bei denen Sie Elemente basierend auf ihrer Position zugreifen oder modifizieren müssen.
Zum Beispiel greift diese for
-Schleife auf den Index und den Wert jedes Elements in der grocery_list
zu:
# 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
Beispielanwendung
Um einen Rabatt auf eine Liste von Preisen anzuwenden, müssen wir die Elemente der Liste direkt ändern. Die Verwendung einer einfachen Schleife wie for cost in prices:
würde uns nur eine Kopie jedes Elements geben, nicht eine Referenz auf das tatsächliche Element in der Liste. Änderungen, die auf diese Weise vorgenommen werden, würden die ursprüngliche Liste nicht beeinflussen.
Um sicherzustellen, dass wir jedes Element direkt aktualisieren in der prices
-Liste, verwenden wir range(len(prices))
, um über die Indizes zu iterieren. Dies ermöglicht es uns, einen Rabattfaktor auf jedes Element anzuwenden:
# 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)
Hinweis
Die Formel
prices[cost] -= prices[cost] * discount_factor
ist gleichbedeutend mitprices[cost] = prices[cost] - prices[cost] * discount_factor
. Dies zieht einen Teil des ursprünglichen Preises (bestimmt durch den Rabatt) von sich selbst ab und wendet den Rabatt effektiv an.Das
cost + 1
in der print-Anweisung passt den Index so an, dass er bei1
statt bei0
zu beginnen scheint, was benutzerfreundlicher ist.
Diese Methode stellt sicher, dass die ursprüngliche Liste prices
direkt mit den neuen, rabattierten Preisen aktualisiert wird, was die Änderungen sofort im gesamten Programm widerspiegelt, wo immer die prices
-Liste verwendet wird.
Swipe to start coding
In dieser Aufgabe arbeiten Sie mit Listen, die Lagerbestände und Lieferungen darstellen, um die Lagerbestände zu aktualisieren. Sie verwenden die Indexiteration, um die Lagerbestände effizient basierend auf den erhaltenen Lieferdaten zu aktualisieren.
Code-Anweisungen
- Ihnen werden zwei Listen zur Verfügung gestellt:
stock_items
undshipment_received
. Jede verschachtelte Liste innerhalb dieser Listen enthält einen Produktnamen und dessen Menge. - Verwenden Sie eine
for
-Schleife in Kombination mit den Funktionenrange()
undlen()
, um über diestock_items
-Liste nach Index zu iterieren. - Aktualisieren Sie für jedes Produkt die Lagerbestände, indem Sie die entsprechende Menge aus der
shipment_received
-Liste hinzufügen.
Ausgabeanforderungen
- Für jedes Produkt drucken Sie eine Nachricht im Format:
Stock updated for <product_name>: <updated_quantity> units
. - Nach der Aktualisierung aller Produkte drucken Sie die endgültigen Lagerbestände mit der Nachricht:
Final stock quantities:
. - Zeigen Sie die aktualisierte
stock_items
-Liste im Format an:Stock Items: <stock_items>
.
Lösung
Danke für Ihr Feedback!