📘 Iterazione Sugli Indici

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.


🔍 Perché iterare sugli indici?

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.


🧪 Esempio base

grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"]

for i in range(len(grocery_list)):
    print("Index:", i)
    print("Item:", grocery_list[i])
    print("----")

🛒 Applicazione pratica: aggiornamento dei prezzi

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.


📝 Compito — Sconto per Posizione

Aggiorna la lista dei prezzi applicando uno sconto diverso per ogni indice.

🎯 Istruzioni

  1. Usa un ciclo for con range(len(prices)) per iterare sugli indici.

  2. Applica sconti diversi in base alla posizione:

    • indice 0 → 10%
    • indice 1 → 20%
    • indice 2 → 15%
    • indice 3 → 5%
  3. Aggiorna ogni prezzo moltiplicando per il relativo fattore di sconto (es.: 10% → 0.9, 20% → 0.8)

  4. Stampa per ogni elemento:

Updated price for item {index}: ${updated_price:.2f}