Quando si lavora con le liste all’interno delle funzioni, è importante ricordare che le liste sono mutabili. Questo significa che:
👉 Se passi una lista a una funzione e la modifichi, la lista originale verrà modificata.
👉 Per evitare modifiche indesiderate, devi creare una copia della lista usando .copy().
Se una lista viene passata direttamente a una funzione e modificata, le modifiche saranno visibili anche fuori dalla funzione.
Per evitare questo comportamento si utilizza:
list_copy = original_list.copy()
In questo modo lavoriamo su un duplicato, lasciando intatta la lista originale.
def add_strawberry(original_list):
list_copy = original_list.copy() # 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']
➡️ La lista originale rimane invariata grazie all’uso di .copy().
Creare una funzione per applicare uno sconto del 10% ai prezzi superiori a $2.00, senza modificare la lista originale.
apply_discount(prices)prices_copy = prices.copy()for index in range(len(prices_copy))Updated product prices: <lista>def apply_discount(prices):
# Create a copy of the original list
prices_copy = prices.copy()
# Iterate using index
for index in range(len(prices_copy)):
if prices_copy[index] > 2.00:
prices_copy[index] = prices_copy[index] * 0.90 # Apply 10% discount
return prices_copy
# Original list of prices
product_prices = [1.50, 2.20, 3.00, 0.99, 2.75]
# Call the function
updated_prices = apply_discount(product_prices)
# Output
print(f"Updated product prices: {updated_prices}")