Itération sur les Index
Dans la tâche précédente, vous avez fourni un nombre spécifique d’éléments à la fonction range()
. Mais que faire si vous devez déterminer ce nombre de manière dynamique ? C’est ici que l’itération sur les index devient essentielle.
L’itération sur les index est une technique fondamentale en Python qui permet d’accéder et de modifier les éléments selon leur position dans des structures de données telles que les listes ou les tableaux. Elle est particulièrement utile pour les tâches nécessitant un contrôle précis de chaque élément, comme la mise à jour des niveaux de stock ou la gestion des données de vente dans une épicerie.
Observez comment Alex démontre que l’itération sur les index peut simplifier les opérations dans notre exemple d’épicerie :
L’itération sur les index est utile lorsque vous devez accéder à la fois à l’index et à la valeur de chaque élément d’une liste. Lorsque nous utilisons range()
avec len()
, nous combinons deux fonctions pour générer une séquence de nombres correspondant aux indices des éléments de la liste. Cette méthode est particulièrement pertinente dans les boucles où il est nécessaire d’accéder ou de modifier les éléments en fonction de leur position.
Par exemple, cette boucle for
permet d’accéder à l’index et à la valeur de chaque élément dans la liste grocery_list
:
# 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
Exemple d'application
Pour appliquer une remise à une liste de prix, il est nécessaire de modifier directement les éléments de la liste. Utiliser une boucle simple comme for cost in prices:
ne fournit qu'une copie de chaque élément, et non une référence à l'élément réel dans la liste. Les modifications effectuées de cette manière n'affecteraient pas la liste d'origine.
Pour garantir la mise à jour directe de chaque élément dans la liste prices
, on utilise range(len(prices))
pour itérer sur les indices. Cela permet d'appliquer un facteur de remise à chaque élément :
# 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)
Remarque
La formule
prices[cost] -= prices[cost] * discount_factor
est équivalente àprices[cost] = prices[cost] - prices[cost] * discount_factor
. Elle soustrait une partie du prix initial (déterminée par la remise) de lui-même, appliquant ainsi effectivement la remise.Le
cost + 1
dans l'instruction d'affichage ajuste l'indice afin qu'il commence à1
au lieu de0
, ce qui le rend plus convivial.
Cette méthode garantit que la liste d'origine prices
est mise à jour directement avec les nouveaux prix remisés, reflétant immédiatement les changements partout où la liste prices
est utilisée dans le programme.
Swipe to start coding
Mettre à jour les niveaux de stock en combinant les données de deux listes : stock_items
et shipment_received
. Le résultat mettra ensuite à jour la liste stock_items
.
stock_items
etshipment_received
sont toutes deux des listes de listes, chacune contenant un nom de produit et sa quantité.- Utiliser une boucle
for
avecrange()
etlen()
pour parcourir les indices destock_items
. - Pour chaque produit, ajouter la quantité reçue à la quantité en stock existante et mettre à jour la valeur dans
stock_items
.
Exigences de sortie
- Pour chaque produit, afficher :
Stock mis à jour pour <product_name> : <updated_quantity> unités
- Après toutes les mises à jour, afficher :
Quantités finales en stock :
Stock Items: <stock_items>
Solution
Merci pour vos commentaires !