📘 Scheda: Funzioni Zip e Sort

🎯 Idea chiave

Usare zip() per combinare liste correlate e sorted() per ordinarle permette di gestire in modo elegante insiemi di dati multipli mantenendo la coerenza tra attributi.


📌 Sfida: Funzioni Zip e Sort

📝 Obiettivo

Combinare, ordinare e visualizzare dati relativi ai prodotti utilizzando zip() e sorted().


🔧 Istruzioni

  1. Usa zip() per unire tre liste in una lista di tuple nel formato: (product_name, price, quantity_sold) → Assegna a combined_list.

  2. Usa sorted() per ordinare combined_list per nome del prodotto in ordine crescente. → Assegna a sorted_products.

  3. Itera su sorted_products e stampa i dati con il formato richiesto.


📤 Requisiti di output

Per ogni prodotto stampa:

Product: <product_name>, Price: <product_price>, Quantity Sold: <quantity_sold>

📌 Spiegazione del Codice — Zip & Sort Challenge

1. Definizione delle liste

Creiamo tre liste parallele che rappresentano i dati dei prodotti:

  • products → nomi dei prodotti
  • prices → prezzi corrispondenti
  • quantities_sold → quantità vendute

2. Combinazione delle liste con zip()

combined_list = list(zip(products, prices, quantities_sold))

La funzione zip() accoppia gli elementi con lo stesso indice e crea tuple:

[("Banana", 1.20, 50), ("Apple", 0.50, 100), ...]

Ora ogni tupla contiene tutte le informazioni di un singolo prodotto.


3. Ordinamento alfabetico con sorted()

sorted_products = sorted(combined_list)

sorted() ordina automaticamente le tuple in base al primo elemento, cioè il nome del prodotto.


4. Stampa dei risultati formattati

for product_name, product_price, quantity_sold in sorted_products:
    print(f"Product: {product_name}, Price: {product_price}, Quantity Sold: {quantity_sold}")

Il ciclo:

  • estrae i tre valori da ogni tupla
  • li inserisce nella stringa formattata
  • stampa un prodotto per riga

Risultato

Un elenco ordinato alfabeticamente, con prezzo e quantità venduta per ogni prodotto.