Le tuple sono strutture dati simili alle liste, ma sono immutabili: non possono essere modificate dopo la creazione.
Quando usarle:
0, 1, 2, ...).# Metodo 1: con parentesi tonde
grocery_aisles = ("Produce", "Dairy", "Bakery", "Meat", "Frozen Foods")
# Metodo 2: senza parentesi (tuple packing)
coordinates = 10, 20, 30
# Tupla con un solo elemento: la virgola è obbligatoria
single_item = ("apple",)
not_a_tuple = ("apple") # è una stringa
# Tupla vuota
empty_tuple = ()
# Tupla con tipi misti
apple_details = ("apple", 34, True, 1.99, "Fuji")
Le tuple usano l'indicizzazione come le liste.
apple_details = ("apple", 34, True, 1.99, "Fuji")
print(apple_details[0]) # "apple"
print(apple_details[4]) # "Fuji"
print(apple_details[-1]) # "Fuji" (indice negativo)
grocery_aisles = ("Produce", "Dairy", "Bakery", "Meat", "Frozen Foods")
print("Grocery Aisles:", grocery_aisles)
Le seguenti operazioni non sono permesse:
grocery_aisles = ("Produce", "Dairy", "Bakery")
# Le istruzioni seguenti genererebbero errori:
# grocery_aisles[0] = "Vegetables"
# grocery_aisles.append("Meat")
# grocery_aisles.remove("Dairy")
# del grocery_aisles[1]
La tupla è immutabile, ma gli oggetti mutabili al suo interno, come le liste, possono essere modificati.
apple_details = (
"apple", 34, True, 1.99, "Fuji",
["Washington", "California", "Michigan"]
)
print(apple_details)
# È possibile modificare la lista contenuta nella tupla
apple_details[5][2] = "Pennsylvania"
print(apple_details)
La tupla contiene ancora gli stessi sei elementi, ma il contenuto della lista al suo interno è stato modificato.
Le tuple hanno due metodi principali:
count(value): conta quante volte un valore appare nella tupla.index(value): restituisce l'indice della prima occorrenza di un valore.count(value)fruits = ("apple", "banana", "cherry", "apple", "banana", "cherry", "apple")
apple_count = fruits.count("apple")
print("Number of times 'apple' appears:", apple_count) # 3
banana_count = fruits.count("banana")
print("Banana count:", banana_count) # 2
orange_count = fruits.count("orange")
print("Orange count:", orange_count) # 0
index(value)fruits = ("apple", "banana", "cherry", "apple", "banana", "cherry", "apple")
cherry_index = fruits.index("cherry")
print("The first occurrence of 'cherry' is at index:", cherry_index) # 2
apple_index = fruits.index("apple")
print("Apple index:", apple_index) # 0
# Se l'elemento non esiste, index() genera ValueError:
# orange_index = fruits.index("orange")
spinachDetails = ("Fresh", "Organic", "Baby Spinach", 2.99, 50)
print("Descrizione:", spinachDetails[2]) # "Baby Spinach"
print("Prezzo:", spinachDetails[3]) # 2.99
print("Quantità:", spinachDetails[4]) # 50
description_index = spinachDetails.index("Baby Spinach")
print("Index of 'Baby Spinach':", description_index) # 2
itemsSold = ("milk", "eggs", "milk", "bread", "eggs", "milk")
milk_sales = itemsSold.count("milk")
print("Milk sold:", milk_sales) # 3
eggs_sales = itemsSold.count("eggs")
print("Eggs sold:", eggs_sales) # 2
# Liste: mutabili, con parentesi quadre
inventory_list = ["apple", "banana", "cherry"]
inventory_list.append("orange")
inventory_list.remove("banana")
inventory_list[0] = "grape"
# Tuple: immutabili, con parentesi tonde
store_categories = ("Produce", "Dairy", "Bakery")
# store_categories.append("Meat")
# store_categories.remove("Dairy")
# store_categories[0] = "Vegetables"
itemsSold = ("milk", "eggs", "milk", "bread", "eggs", "milk")
print(itemsSold.count("milk"))
# Soluzione: 3
spinachDetails = ("Fresh", "Organic", "Baby Spinach", 2.99, 50)
position = spinachDetails.index("Baby Spinach")
print(position)
# Soluzione: 2
index() restituisce solo la prima occorrenza e genera un errore se l'elemento non esiste.("item",).