Comportamento delle Liste nelle Funzioni
Esploriamo il lavoro con le liste all'interno delle funzioni. Sebbene sia simile al lavoro con i numeri, ci sono alcuni dettagli importanti da considerare.
Le liste sono mutabili, il che significa che qualsiasi modifica apportata a una lista all'interno di una funzione influenzerà anche la lista originale all'esterno della funzione se viene passata direttamente.
Per evitare ciò, è possibile utilizzare il metodo copy()
con qualsiasi tipo di dato mutabile. In questo modo si crea una copia superficiale della lista, consentendo di modificare un duplicato invece dell'originale. Questo garantisce che le modifiche apportate all'interno della funzione non influenzino la lista originale.
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
In questo esempio, la lista originale fruits
rimane invariata perché è stato utilizzato copy()
. Senza copy()
, modificare la lista all'interno della funzione avrebbe cambiato anche la lista originale fruits
.
Swipe to start coding
Crea una funzione per applicare uno sconto del 10% ai prezzi dei prodotti superiori a $2.00, senza modificare la lista originale.
- Definire una funzione
apply_discount(prices)
che accetta una lista di prezzi. - All'interno della funzione, creare una copia di
prices
e assegnarla aprices_copy
. - Utilizzare un ciclo
for
con iterazione tramite indice (range(len(prices_copy))
) per scorrere la lista copiata. - Se un prezzo è superiore a
2.00
, applicare uno sconto del 10%. - Restituire la lista aggiornata
prices_copy
.
Requisiti di output
- La funzione deve restituire la nuova lista con i prezzi scontati.
- Stampare il risultato utilizzando:
Prezzi dei prodotti aggiornati: <$updated_prices>
Nota
Utilizzare l'iterazione basata su indice per garantire che la lista venga modificata correttamente:
for index in range(len(prices)):
modifica direttamente gli elementi, a differenza difor price in prices:
.
Soluzione
Grazie per i tuoi commenti!