Iterieren Über Indizes
In der vorherigen Aufgabe hast du der Funktion range() eine bestimmte Anzahl von Elementen übergeben. Aber was ist, wenn du die Anzahl dynamisch bestimmen musst? Hier wird die Indexiteration unerlässlich.
Die Indexiteration ist eine zentrale Technik in Python, mit der du Elemente anhand ihrer Position in Datenstrukturen wie Listen oder Arrays zugreifen und verändern kannst. Sie ist besonders hilfreich bei Aufgaben, die präzise Kontrolle über jedes Element erfordern, wie zum Beispiel das Aktualisieren von Lagerbeständen oder das Verwalten von Verkaufsdaten in einem Lebensmittelgeschäft.
Sieh dir an, wie Alex zeigt, wie die Iteration über Indizes die Abläufe in unserem Lebensmittelgeschäft-Beispiel vereinfachen kann:
Die Iteration über Indizes ist nützlich, wenn sowohl der Index als auch der Wert jedes Elements in einer Liste benötigt werden. 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 hilfreich in Schleifen, in denen Elemente positionsbasiert angesprochen oder verändert werden müssen.
Zum Beispiel greift diese for-Schleife auf den Index und den Wert jedes Elements in der grocery_list zu:
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
Beispielanwendung
Um einen Rabatt auf eine Liste von Preisen anzuwenden, müssen die Elemente der Liste direkt verändert werden. Eine einfache Schleife wie for cost in prices: liefert lediglich eine Kopie jedes Elements, jedoch keinen Verweis auf das tatsächliche Element in der Liste. Änderungen auf diese Weise beeinflussen die Original-Liste nicht.
Um sicherzustellen, dass wir jedes Element in der Liste prices direkt aktualisieren, verwenden wir range(len(prices)), um über die Indizes zu iterieren. Dadurch kann auf jedes Element ein Rabattfaktor angewendet werden:
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)
- Die Formel
prices[cost] -= prices[cost] * discount_factorist gleichbedeutend mitprices[cost] = prices[cost] - prices[cost] * discount_factor. Dadurch wird ein Anteil des ursprünglichen Preises (bestimmt durch den Rabatt) vom Preis abgezogen, wodurch der Rabatt effektiv angewendet wird; - Das
cost + 1in der Ausgabefunktion passt den Index so an, dass er bei1statt bei0beginnt, was benutzerfreundlicher ist.
Mit dieser Methode wird sichergestellt, dass die ursprüngliche Liste prices direkt mit den neuen, rabattierten Preisen aktualisiert wird, sodass die Änderungen sofort im gesamten Programm wirksam sind, überall dort, wo die Liste prices verwendet wird.
Swipe to start coding
Rabatt nach Position
Aktualisiere die Liste prices, indem du für jedes Element je nach Position in der Liste unterschiedliche Rabattprozentsätze anwendest. Verwende eine Indexiteration, um sicherzustellen, dass du die ursprüngliche Liste prices direkt aktualisierst.
-
Verwende eine for-Schleife mit
range()undlen(), um über die Indizes vonpriceszu iterieren; -
Wende für jeden Index die folgenden Rabatte an und aktualisiere die Liste:
- Index 0: 10 % Rabatt (mit 0.9 multiplizieren);
- Index 1: 20 % Rabatt (mit 0.8 multiplizieren);
- Index 2: 15 % Rabatt (mit 0.85 multiplizieren);
- Index 3: 5 % Rabatt (mit 0.95 multiplizieren);
-
Gib nach jeder Preisaktualisierung folgende Zeile aus:
Updated price for item {index}: ${updated_price:.2f}; -
Verwende
.2fin deiner Ausgabefunktion, um die Preise auf 2 Dezimalstellen zu formatieren (zum Beispiel wird aus5→5.00). -
Die Liste
pricesmuss direkt aktualisiert werden, nicht nur die rabattierten Werte ausgeben.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Großartig!
Completion Rate verbessert auf 1.89
Iterieren Über Indizes
Swipe um das Menü anzuzeigen
In der vorherigen Aufgabe hast du der Funktion range() eine bestimmte Anzahl von Elementen übergeben. Aber was ist, wenn du die Anzahl dynamisch bestimmen musst? Hier wird die Indexiteration unerlässlich.
Die Indexiteration ist eine zentrale Technik in Python, mit der du Elemente anhand ihrer Position in Datenstrukturen wie Listen oder Arrays zugreifen und verändern kannst. Sie ist besonders hilfreich bei Aufgaben, die präzise Kontrolle über jedes Element erfordern, wie zum Beispiel das Aktualisieren von Lagerbeständen oder das Verwalten von Verkaufsdaten in einem Lebensmittelgeschäft.
Sieh dir an, wie Alex zeigt, wie die Iteration über Indizes die Abläufe in unserem Lebensmittelgeschäft-Beispiel vereinfachen kann:
Die Iteration über Indizes ist nützlich, wenn sowohl der Index als auch der Wert jedes Elements in einer Liste benötigt werden. 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 hilfreich in Schleifen, in denen Elemente positionsbasiert angesprochen oder verändert werden müssen.
Zum Beispiel greift diese for-Schleife auf den Index und den Wert jedes Elements in der grocery_list zu:
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
Beispielanwendung
Um einen Rabatt auf eine Liste von Preisen anzuwenden, müssen die Elemente der Liste direkt verändert werden. Eine einfache Schleife wie for cost in prices: liefert lediglich eine Kopie jedes Elements, jedoch keinen Verweis auf das tatsächliche Element in der Liste. Änderungen auf diese Weise beeinflussen die Original-Liste nicht.
Um sicherzustellen, dass wir jedes Element in der Liste prices direkt aktualisieren, verwenden wir range(len(prices)), um über die Indizes zu iterieren. Dadurch kann auf jedes Element ein Rabattfaktor angewendet werden:
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)
- Die Formel
prices[cost] -= prices[cost] * discount_factorist gleichbedeutend mitprices[cost] = prices[cost] - prices[cost] * discount_factor. Dadurch wird ein Anteil des ursprünglichen Preises (bestimmt durch den Rabatt) vom Preis abgezogen, wodurch der Rabatt effektiv angewendet wird; - Das
cost + 1in der Ausgabefunktion passt den Index so an, dass er bei1statt bei0beginnt, was benutzerfreundlicher ist.
Mit dieser Methode wird sichergestellt, dass die ursprüngliche Liste prices direkt mit den neuen, rabattierten Preisen aktualisiert wird, sodass die Änderungen sofort im gesamten Programm wirksam sind, überall dort, wo die Liste prices verwendet wird.
Swipe to start coding
Rabatt nach Position
Aktualisiere die Liste prices, indem du für jedes Element je nach Position in der Liste unterschiedliche Rabattprozentsätze anwendest. Verwende eine Indexiteration, um sicherzustellen, dass du die ursprüngliche Liste prices direkt aktualisierst.
-
Verwende eine for-Schleife mit
range()undlen(), um über die Indizes vonpriceszu iterieren; -
Wende für jeden Index die folgenden Rabatte an und aktualisiere die Liste:
- Index 0: 10 % Rabatt (mit 0.9 multiplizieren);
- Index 1: 20 % Rabatt (mit 0.8 multiplizieren);
- Index 2: 15 % Rabatt (mit 0.85 multiplizieren);
- Index 3: 5 % Rabatt (mit 0.95 multiplizieren);
-
Gib nach jeder Preisaktualisierung folgende Zeile aus:
Updated price for item {index}: ${updated_price:.2f}; -
Verwende
.2fin deiner Ausgabefunktion, um die Preise auf 2 Dezimalstellen zu formatieren (zum Beispiel wird aus5→5.00). -
Die Liste
pricesmuss direkt aktualisiert werden, nicht nur die rabattierten Werte ausgeben.
Lösung
Danke für Ihr Feedback!
single