Iterare Sugli Indici
Nel compito precedente, hai fornito un numero specifico di elementi alla funzione range()
. Ma cosa succede se hai bisogno di determinare il numero in modo dinamico? È qui che l'iterazione degli indici diventa essenziale.
L'iterazione degli indici è una tecnica fondamentale in Python che ti permette di accedere e modificare gli elementi in base alle loro posizioni all'interno di strutture dati come liste o array. È particolarmente utile per compiti che necessitano di un controllo preciso su ogni elemento, come l'aggiornamento dei livelli di inventario o la gestione dei dati di vendita in un negozio di alimentari.
Guarda come Alex dimostra come l'iterazione sugli indici può semplificare le operazioni nel nostro esempio del negozio di alimentari:
Iterare sugli indici è utile quando hai bisogno di accedere sia all'indice che al valore di ciascun elemento in una lista. Quando usiamo range()
con len()
, stiamo combinando due funzioni per generare una sequenza di numeri corrispondenti agli indici degli elementi della lista. Questo metodo è particolarmente utile nei cicli dove hai bisogno di accedere o modificare gli elementi in base alla loro posizione.
Ad esempio, questo ciclo for
accede all'indice e al valore di ciascun elemento nella 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
Applicazione Esempio
Per applicare uno sconto a un elenco di prezzi, dobbiamo modificare direttamente gli elementi dell'elenco. Utilizzare un ciclo semplice come for cost in prices:
ci darebbe solo una copia di ciascun elemento, non un riferimento all'elemento reale nell'elenco. Le modifiche apportate in questo modo non influenzerebbero l'elenco originale.
Per assicurarci di aggiornare direttamente ciascun elemento nell'elenco prices
, utilizziamo range(len(prices))
per iterare sugli indici. Questo ci consente di applicare un fattore di sconto a ciascun elemento:
# 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)
Nota
La formula
prices[cost] -= prices[cost] * discount_factor
è equivalente aprices[cost] = prices[cost] - prices[cost] * discount_factor
. Questo sottrae una parte del prezzo originale (determinata dallo sconto) da se stesso, applicando effettivamente lo sconto.Il
cost + 1
nell'istruzione di stampa regola l'indice in modo che appaia iniziare da1
invece che da0
, rendendolo più user-friendly.
Questo metodo assicura che la lista originale prices
sia aggiornata direttamente con i nuovi prezzi scontati, riflettendo i cambiamenti immediatamente in tutto il programma ovunque venga utilizzata la lista prices
.
Swipe to start coding
Aggiorna i livelli di inventario combinando i dati da due liste: stock_items
e shipment_received
. Quindi il risultato aggiornerà la lista stock_items
.
- Sia
stock_items
cheshipment_received
sono liste di liste, ciascuna contenente un nome di prodotto e la sua quantità. - Usa un ciclo
for
conrange()
elen()
per iterare attraverso gli indici distock_items
. - Per ogni prodotto, aggiungi la quantità della spedizione allo stock esistente e aggiorna il valore in
stock_items
.
Requisiti di Output
- Per ogni prodotto, stampa:
Stock aggiornato per <product_name>: <updated_quantity> unità
- Dopo tutti gli aggiornamenti, stampa:
Quantità finali di stock:
Stock Items: <stock_items>
Soluzione
Grazie per i tuoi commenti!