Quando devi iterare su una lista ma hai bisogno non solo del valore, ma anche della posizione di ogni elemento, l’approccio migliore è combinare range() con len().
Questa tecnica è fondamentale quando devi modificare direttamente gli elementi di una lista, come aggiornare prezzi, quantità o livelli di inventario.
Usare un ciclo come:
for item in prices:
ti permette di leggere i valori, ma non di modificarli nella lista originale. Stai infatti lavorando su una copia temporanea del valore.
Quando hai bisogno di aggiornare gli elementi direttamente nella lista, devi usare:
for i in range(len(lista)):
Questo ti garantisce accesso agli indici e quindi la possibilità di modificare i valori nella struttura dati originale.
grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"]
for i in range(len(grocery_list)):
print("Index:", i)
print("Item:", grocery_list[i])
print("----")
Per applicare uno sconto alla lista aggiornando i valori reali, iteriamo sugli indici:
prices = [1.50, 2.00, 0.75, 3.25]
discount_factor = 0.10
for i in range(len(prices)):
prices[i] -= prices[i] * discount_factor
print(f"New price of item {i+1}: ${prices[i]}")
Questo metodo modifica la lista originale.
Aggiorna la lista dei prezzi applicando uno sconto diverso per ogni indice.
Usa un ciclo for con range(len(prices)) per iterare sugli indici.
Applica sconti diversi in base alla posizione:
Aggiorna ogni prezzo moltiplicando per il relativo fattore di sconto
(es.: 10% → 0.9, 20% → 0.8)
Stampa per ogni elemento:
Updated price for item {index}: ${updated_price:.2f}