Le liste annidate sono liste che contengono altre liste come elementi. Permettono di organizzare dati complessi e correlati in strutture ordinate.
Sono utili quando ogni elemento ha attributi multipli, ad esempio un prodotto rappresentato da [nome, prezzo, quantità, tipo].
Per accedere agli elementi di liste annidate si usa la sintassi:
lista[indice_esterno][indice_interno]
grocery_list = [
["Bread", 4.80, 3, "Gluten Free"],
["Milk", 5.99, 2, "2% Milk"],
["Apple", 1.27, 12, "Fuji"]
]
# Esempi di accesso
# grocery_list[1] -> ["Milk", 5.99, 2, "2% Milk"]
# grocery_list[1][0] -> "Milk" (nome)
# grocery_list[1][1] -> 5.99 (prezzo)
# grocery_list[1][2] -> 2 (quantità)
# grocery_list[1][3] -> "2% Milk" (tipo)
# Passo 1: creare le sottoliste per ogni prodotto
bread = ["Bread", 4.80, 3, "Gluten Free"]
milk = ["Milk", 5.99, 2, "2% Milk"]
apple = ["Apple", 1.27, 12, "Fuji"]
# Passo 2: creare la lista principale
grocery_list = [bread, apple, milk]
print("Grocery List:", grocery_list)
# Passo 3: accedere ai dettagli del latte (posizione 2)
print("Item:", grocery_list[2][0])
print("Price:", grocery_list[2][1])
print("Quantity:", grocery_list[2][2])
print("Type:", grocery_list[2][3])
# Passo 4: aggiungere un nuovo articolo
onion = ["Onions", 1.30, 10, "Yellow"]
grocery_list.append(onion)
# Passo 5: rimuovere un articolo
grocery_list.remove(bread)
# Passo 6: ordinare alfabeticamente per il primo elemento di ogni sottolista
grocery_list.sort()
print("Updated Grocery List:", grocery_list)
vegetables = ["tomatoes", "potatoes", "onions"]
if "carrots" not in vegetables:
vegetables.append("carrots")
else:
print("Carrots are already in the list.")
vegetables.remove("onions")
if "cucumbers" not in vegetables:
vegetables.append("cucumbers")
else:
print("Cucumbers are already in the list.")
vegetables.sort()
print(f"Updated Vegetable Inventory: {vegetables}")
Requisiti:
"onions"."carrots" con controllo dei duplicati."cucumbers" con controllo dei duplicati.Soluzione:
vegetables = ["tomatoes", "potatoes", "onions"]
vegetables.remove("onions")
if "carrots" not in vegetables:
vegetables.append("carrots")
else:
print("Carrots are already in the list.")
if "cucumbers" not in vegetables:
vegetables.append("cucumbers")
else:
print("Cucumbers are already in the list.")
vegetables.sort()
print(f"Updated Vegetable Inventory: {vegetables}")
# Output atteso: Updated Vegetable Inventory: ['carrots', 'cucumbers', 'potatoes', 'tomatoes']
in verifica la presenza di un elemento nella lista.sort() ordina le liste annidate in base al primo elemento di ogni sottolista.lista[0][1][2], ecc.not in per verificare l'assenza di un elemento.# Liste semplici: un valore per elemento
fruits = ["apple", "banana", "cherry"]
# Liste annidate: più valori per elemento
products = [
["apple", 1.27, 12],
["banana", 0.59, 6],
["cherry", 3.99, 20]
]
# Accesso:
# Lista semplice: fruits[0] -> "apple"
# Lista annidata: products[0][0] -> "apple", products[0][1] -> 1.27